前 言
1 编写背景
自1981年问世以来,MATLAB在数学原理、数值方法和解算应用上的创造性处理模式,不仅使它具有无与伦比的精准有效的数学解算能力和卓越超群的函数、数据征的图形揭示能力,而且使非数学专业人士和不完全掌握复杂算法要领的科研人员对MATLAB具有独的亲和力和应用能力。在问世的30年间,MATLAB广泛而深刻地改变了各国高校理工科教学模式,广泛而深刻地改变了各国科技界的研究和设计模式。正如2012年IEEE计算机协会向MATLAB发明创始人Cleve Moler颁发“先驱奖”的颁奖词中所说:“MATLAB对科研领域影响之深广是难以言表的。MATLAB已经成为了计算机科学和计算机系统的基本组成 部分。”
在中国,MATLAB的传播虽稍晚于欧美,但也已应用了近20年。现在国内有相当数量的研究机构、研发部门也都借助MATLAB进行建模、仿真和设计。在国外引进教材和国内人才需求两方面的推动下,国内高校的理工科课程教学,在MATLAB的影响下也发生了巨大变化。像欧美高校一样,国内也已经有不少借助MATLAB阐释内容的课程。还有一些课程,即使原所用教材不含MATLAB,也或采用习题、或采用仿真试验、或采用课程设计的方式,引进了MATLAB的应用实例。
2. 编写宗旨
从MATLAB自身的点出发,融作者本人近20年来的本科和研究生MATLAB教学经验,以及在科研应用中的直接体验,把本书编写宗旨定位于:以应用为主,兼顾原理和算法说明;以本科内容为主,兼顾研究生课程需要;注重MATLAB的基本内容,跟踪MATLAB的版本升级。
具体措施:
一、 本书将所涉数学内容控制在本科大纲水平。
二、 本书不涉及MATLAB专业工具包(如控制、信号处理、图像处理、通信、金融、生物信息等)的内容,而着力阐述:被解算问题的MATLAB表述、计令的调用格式、多命令协调配用、以及计算结果或函数的适当表达(数据或图形)。
三、 本书别强调MATLAB面向复数、面向数组的运算点,强调数组化编程,与此同时还精心设计了若干算例向读者警示数值计算中的注意事项。
四、 考虑到本科课程设计、毕业设计需要,本书专辟一章讲授图形用户界面的制作要领。
五、 本书还展示了依托MATLAB建立的Simulink的“模块 + 鼠标操作”的交互式建模能力,展示了Simulink在功能级和元器件级两个层面上的仿真能力。
3. 本书结构
全书由“目录”、“正文”、“习题”、“附录”、“索引”和“配书电子文档”组成。正文共8章,包含153个算例,83个习题。
章节内容循由浅入深原则编排。数多量大的算例是本教材一大色。每个算例都经过精心设计,它们从不同角度展示MATLAB的点、规则和注意事项。习题分章安排在正文之后,答案被放置在各章习题的电子文档中。本教材习题承载两个功能:一,培养学生独立解决问题的能力;二,拓展学生对MATLAB的认识。
附录A简单介绍字符串数组、胞元数组和构架数组。附录B描述集Word及MATLAB于一体的Notebook工作环境的创建和使用。附录C介绍与书配套的电子文档的用法。附录D索引,便于读者随时据命令名称寻找相关叙述。该附录汇集了本教材所涉及的MATLAB命令。除标点符号在前外,所有命令按英文字母次序罗列。每个符号或命令后,罗列着本书介绍或使用该命令的具体节次。
配套电子文档中DOCX文件的主要功用:向教师提供制作本教程电子讲稿的基础文件;向学生提供完成电子作业的模板;向读者提供演练Notebook的良好环境。而电子文档mfile文件夹上的M、SLX、MAT等文件为读者提供了所有算例在MATLAB环境运作必需的 文件。
4. 内容简介
全书共8章。
第1章 基础准备及入门 详细讲述MATLAB工作界面Desktop,介绍MATLAB的基本语法、规则和使用方法、讲授如何借助MATLAB的自带帮助系统解决所遇到的困难。任何MATLAB“生手”借助本章都可以比较顺利地跨入MATLAB门槛。
第2章 符号计算 演绎数学问题的解析计算和任意精度解。该章介绍的解题理念、计算过程、计算结果与高校教科书中的理论内容十分相似,因此学生比较容易接受并应用。此外,在MATLAB中,由于符号计算和数值计算采用两个不同的计算“引擎”,所以本章内容相对独立。
第3章 数组运算及数组化编程 介绍MATLAB基本运算单元“数组”,阐述以数组为基本运算单元的算术、关系、逻辑运算符所服从的“数组运算通则”,避免和减少循环和条件转向的MATLAB数组化编程。此外,还安排专门节次详述:矩阵与数组的区别,即如何使用MATLAB独具的矩阵化编程。
第4章 数值计算 分类讲述基本数学问题(如微积分、极值、微分方程、矩阵和代数方程、随机流的生成和操控、概率统计、多项式和卷积等)的数值解令和要领,帮助学生建立起正确的数值计算概念。
第5章 数据和函数可视化 阐释理论数学函数可视化的基本步骤、基本命令和协调使用,培养学生借助图形获知离散数据所隐含函数征的能力。
第6章 M文件和函数句柄 系统介绍MATLAB程序中常用的四种控制结构、M函数文件构造、主函数、子函数以及匿名函数。后一节专门叙述函数句柄的创建、观察和调用。
第7章 Simulink仿真集成环境 采用算例引导、纵向深入的方式描述Simulink模型的交互式创建和仿真方法。四个典型算例分别是:基于微分方程的连续系统仿真、基于传递函数的连续系统分析、基于滤波模块的采样离散系统仿真、以及基于元器件级模块的电路瞬态分析。本章无意对Simulink解决信号与系统问题、电路分析问题进行全面阐述,而着力于让学生通过举一反三体验Simulink崭新、强大的仿真能力。
第8章 图形用户界面(GUI) 借助4个算例,从入门引导起步,到控件回调函数编写的纵深。简明地介绍版面编辑器的使用要领,展示典型控件的属性设置和回调函数标写技巧。
5. 教材内容稳定性和软件版本适配性
MATLAB问世30多年来,虽已历经(大小)数十次版本升级,其自身容量已从几百KB膨胀到10 GB量级,其数据结构已从单一的双精度扩展为多种数据类型,其操作平台已从DOS迁移到Windows,但其基本语法、操作规则和核心命令几乎没有变化。这完全归功于Mathworks公司的远见卓识和精湛的面向对象处理技术。
本教材内容除第2章符号计算和第7章仿真集成环境外,其余内容都用于阐述MATLAB主包的基本语法、操作规则和核心命令。这从根本上保证了本教材内容的稳定性。
保证教材与MATLAB升级适配,保证教材时新性是本书作者和出版社尽力保障的一个点。这基于两方面的考虑:一,2006年MATLAB的制造商宣布,MATLAB将每隔半年升级一次;二,教材的时新性有利于增强初学者对MATLAB的“亲和感”和“学习心态的愉悦”,有利于初学者更快地掌握和使用MATLAB。
几年前,MATLAB不再把Maple用作默认符号计算引擎,而开始启用新的符号计算引擎MuPAD。自那以后,MATLAB的符号工具包年年都在变化升级。如今MATLAB符号工具包的能力已远非昔日可比。本教材的修订,及时准确地描述了现今MATLAB符号计算的基本语法规则和运令。
Simulink是MATLAB中与真实过程(系统)“距离”近的仿真环境,是MATLAB走向实时仿真的主要途径,是当今MATLAB中活力、变化快的工具包。从另一侧面看,这也意味着,Simulink模型对版本是比较敏感的。旧版本的Simulink模型在新版本的Simulink中往往不能直接运行,而需要重新利用新环境中的模块勾画后再运行。基于Simulink的这种版本点,本教材对于每个Simulink块图模型的模块参数、仿真算法、步长选取、示波器的设置都加以详细描述,以便确保读者可重现算例演示。
6. 教学建议
(1) 教学环境和形式
本教材内容应尽量在多媒体教室讲授。本教材中所有算例的计算结果(包括数据和图形)都应该在教学现场实时产生,以便学生亲眼目睹教师操作,感受计算过程和计算 结果。
对于涉及MATLAB内容较多的课程,不宜采用PowerPoint写成的幻灯片作为电子讲稿。本书作者建议采用(Word+MATLAB)构成的M-book模板编写电子讲稿。这样,通过本课程的潜移默化,学生很容易掌握M-book的使用。电子文档中的DOCX文件可方便于教师制作电子讲稿。
学习本教材的每个学生都应该在计算机上亲自演练本教材中的算例。要别重视算例命令的直接键入练习,只有这样才能加深对MATLAB的理解,纠正自己的误解和误操作。建议:学生采用电子文档mbook文件夹上的DOCX模板解答本书习题。
(2) 教学内容安排
作为入门内容的第1章必须先讲授,但不必太细。除MATLAB及其工作界面的基本点和操作技法外,其余内容可以渗透在本教材以后的课程中介绍。
本教材之所以把“符号计算”安排在第2章,是出于本章所涉计算的推演模式相似于大学(数学、专业)教材的考虑。假如不考虑这些,那么本章内容安排在第3、第4章以后讲授也是合适的。
假如教学课时有限,那么下列节次可以酌情少讲或不讲:第2.7节,第4.3节,第4.4.2节,第5.3.4节,第5.4节,第7章,第8章。
7. 致 谢
在本书的讲稿阶段以及出版、修订阶段,先后得到徐彦琴、凌云、张昀、邱国霞、蔡莉莉、刘莉、陈箭锋、赵业锦、靳种宝、江洁、张传飞、朱捷等研究生的帮助和支持。借本书出版之际,作者向他们表示真诚的感谢。
后还要感谢航空大学出版社,是他们一再鼓励作者结合讲稿和读者的反馈意见对前书《MATLAB教程》 进行修订、改编。
本书基本内容虽经多年教学的筛选提炼,但限于作者知识,赘病、错误和偏见仍难避免。在此,本书作者恳切期望得到各方面专家和广大读者的指教。作者电子信箱:zyzh@njupt.edu.cn。
作 者
2006年4月初成于南京
2014年8月修改于南京