图书前言

第2版前言

本书自第1 版问世以来,已历经数年的教学实践与课程录制。在此期间,我深感书中的

部分内容亟须进行全面更新与优化。为更好地契合MATLAB 新版本的使用需求,我精心撰

写了本书的第2 版。此次更新虽在正文部分改动不多,但重点内容已得到显著提升,具体更

新要点如下。

(1)在常规习题的基础上,每章新增了若干经过精心设计且具有一定挑战性的“小项

目”,旨在为学有余力的读者提供更深入的学习机会。这些“小项目”已制作成实时文本格式

文件,方便读者直接下载使用。

(2)详细阐述了MATLAB 新版本中引入的arguments 段落功能,该功能不仅使函数输

入变元的检测机制更加规范化和简洁化,同时也显著优化了程序的整体结构。本书按照这样

的结构对第1 版图书中全部MATLAB 函数进行了改写。

(3)通过例子简要介绍了MATLAB 调用Python 函数的方法,为读者学习使用MATLAB

无缝连接Python 奠定了基础。

(4)在“最优化问题求解”一章中,针对无约束最优化与一般非线性规划问题,详细介绍

了新版本MATLAB 全面支持的基于问题的描述方式及其求解方法。此外,还探讨了如何将

这种描述方式转换为结构体描述方式,从而使得复杂最优化问题的表述更加直观和简洁。

(5)在微分方程求解与最优化的相关章节中,新增了求解过程的可视化监测方法。这一

改进旨在帮助读者更清晰地掌握求解过程中的中间信息,并在必要时通过有效手段干预求

解过程,从而显著提升问题求解的效率与解的可靠性。

(6)在介绍Simulink 建模与仿真的两章中,根据MATLAB 新版本的中文界面进行了全

面改写,并详细介绍了“模型资源管理器”的使用方法。这一更新使得Simulink 模型的参数

设置更加便捷,显著提升了用户的操作体验。

(7)本书不仅详细介绍了经典的一级S-函数编程格式,还简要阐述了二级S-函数的编

程方法。通过掌握这两种格式,读者将具备S-函数的升级能力,从而在一级S-函数被Math-

Works 公司弃用后,依然能够利用二级S-函数构建或升级模块,确保代码的持续可用性和可

维护性。

(8)新增附录部分,专门介绍并通过实例演示了基于人工智能软件DeepSeek 的半自动

编程技术。这一内容旨在为读者提供一种高效、智能的编程辅助工具,帮助读者在开发过程

中提升效率与代码质量。

(9)为每个知识点新增了全新录制的英文微课视频,方便读者随时扫码观看学习。同时,

本书的英文版MATLAB and Simulink in Action: Programming, Scientific Computing and

II MATLAB/Simulink 实用教程——编程、计算与仿真(第2 版)

Simulation 已由Springer 出版社同步出版,非常适合用于全英文或双语课程的建设与学习,

为读者提供更加丰富的学习资源与国际化视角。

(10)书末增加了“术语索引”,以便读者能更容易地查询相关内容。

本书的部分写作受东北大学2024 年度本科教育教学改革研究立项项目与2024 年第一

批教育部产学合作协同育人项目(项目编号:231101663020737)的资助,在此表示感谢。

特别感谢我的女儿薛杨,她提供了宝贵的建议和策划,并做了初步的探索,在此基础上,

我为本书编写了基于DeepSeek 的半自动编程的附录,为MATLAB 课程学习与实践提供了

新的思路。

薛定宇

2025 年7 月10 日

第1版前言

MATLAB 语言是学术界与很多工程领域使用广泛的专业计算机语言。对理工科学生

而言,尽早学习、掌握这样的主流计算机语言,才能有机会提早在课程学习与课外活动中使

用MATLAB 语言,更好地解决学习、实践中遇到的问题。例如,在传统课程的学习中,至少

可以从一个新的视角审视学习的内容,探讨利用计算机解决实际问题的方法,甚至创造性地

解决前人没有解决的问题。

在总结多年实际教学经验的基础上,我曾在首届MathWorks 亚洲研究教育峰会(2014

年11 月,东京)上提出了科学运算问题的“三步求解方法”。第一步是用简单的语言理解要求

解数学问题的物理意义;第二步是用计算机能接受的方式将数学问题输入计算机;第三步是

调用恰当的函数求出数学问题的解。有了这样的思路,普通研究者就可以直接利用计算机工

具在短时间内解决已经学习过甚至从未接触过的科学运算问题。本书涉及大量科学运算问

题的求解实例,基本采用的就是这样的“三步求解方法”。

我于1988 年在英国Sussex 大学读博士时开始接触MATLAB 语言,并用MATLAB 语

言开发了用于反馈控制课程实验的Control Kit 软件,用于该校的实际教学实践,该软件后

来成为英国Rapid Data 公司的商品软件。1993 年我回东北大学任教,将MATLAB 语言引

入实际教学,并在1996 年由清华大学出版社出版《控制系统计算机辅助设计——MATLAB

语言与应用》,该书被认为是国内较早系统介绍MATLAB 语言的著作,后来被评为国家级

精品教材,以其为基础的“控制系统仿真与CAD”课程被先后评为国家级精品课程、首批国

家级精品资源共享课程。

随着MATLAB 功能的日益强大,各个专业的师生都普遍使用MATLAB 解决实际问

题,我认为有必要开设一门专门的课程,不但介绍MATLAB 的基本使用方法,更应该广

泛介绍利用MATLAB 语言求解与各门数学课程相关的问题,全面提升学生解决实际科学

运算问题的水平。2002 年,我在东北大学开设了自动化专业本科生的必选课程“MATLAB

语言与科学运算”,并于次年将该课程扩展为面向全校研究生的选修课程。2004 年我在清华

大学出版社出版了《高等应用数学问题的MATLAB 求解》,以其为教材的课程“现代科学运

算——MATLAB 语言与应用”于2020 年入选首批国家级一流本科课程。

经过30 年教学与科研的积累,我在清华大学出版社出版了系列著作《薛定宇教授大讲

堂》(共6 卷),专门介绍MATLAB、Simulink 的编程与建模基础,并针对若干数学主题,深入

研究如何用MATLAB 直接求解数学问题。为了使理工科各专业本科生和研究生能够更好

地学习使用MATLAB 语言,解决实际的科学研究问题,特将该系列著作的基础内容浓缩成

现在的《MATLAB/Simulink 实用教程——编程、计算与仿真》一书,在此特别感谢清华大学

IV MATLAB/Simulink 实用教程——编程、计算与仿真(第2 版)

出版社计算机与信息分社盛东亮主任的建议。

本书的写作经历了“从薄到厚,再从厚到薄”的演变过程。经过十几年的努力,从最初

2004 年400 多页的教材扩展成1700 多页的系列著作,再浓缩成这部300 多页的教材。本书兼

顾MATLAB 编程、科学运算和系统仿真三方面的内容。与早期教材相比,本书大篇幅增加

了MATLAB 编程方面的内容,在充分介绍传统编程方法之外,还介绍了面向对象的编程技

术,弱化了科学运算问题求解的内容,但保留了传统的科学运算问题的主线,保留了很多原

创的内容,更有效地求解各个数学分支的科学运算问题。本书增加了Simulink 建模与仿真

的内容,为读者开展系统仿真研究奠定必要的基础。

在本书的基础上,我准备了全套的交互式PPT 教学材料和其他教学资源,适合读者学

习。此外,我录制的国家级一流本科课程“现代科学运算——MATLAB 语言与应用”的教学

视频同样适合本教材的线上学习。书中还给出了对应知识点视频的二维码,便于读者自学。

本书即将出版之时,特别感谢我的导师任兴权教授和Derek Atherton 教授,是他们将我

引入系统仿真与MATLAB 编程的乐园,开始了饶有兴趣且富有挑战的学术、教学生涯。感

谢前辈同事徐心和教授的提携、关照与具体指导,并为我后来的自主发展提供了宽松的条

件,使我能够将大量时间用于教学探讨与教材建设。

特别感谢团队的同事潘峰博士在课程建设、教材建设与教学团队建设中的出色贡献和

所做的具体工作。感谢美国加利福尼亚大学Merced 分校的陈阳泉教授二十多年来的真诚合

作及对诸多问题的有意义的探讨。我几十年来与同事、学生、同行甚至网友进行有益交流,

其中有些内容已经形成了本书的重要素材,在此一并表示感谢。本书的出版还得到了美国

MathWorks 公司图书计划的支持,在此表示谢意。

最后但同样重要的,我衷心感谢相濡以沫的妻子杨军教授,她数十年如一日的无私关怀

是我坚持研究、教学与写作的巨大动力。感谢女儿薛杨在文稿写作、排版与视频转换中给出

的建议和具体帮助。

薛定宇

2021 年8 月11 日