前 言
数值分析是数学的一个分支,是利用计算机求解各种数学问题的数值方法及相关理论。随着计算技术的发展,曾经出现过多种计算语言,经过几十年的变迁,有些语言被逐步淘汰,MATLAB却以其顽强的生命力生存下来,并且还在非常稳健地发展。
MATLAB是美国MathWorks公司出品的商业数学软件,是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。其主要包括MATLAB和Simulink两大部分。
MATLAB将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
本书内容
本书共包含13章和3个附录。
第1章 MATLAB基础
本章从认识最基本的软件界面开始到学习核心的程序设计方法,比较详细地介绍了MATLAB编程的基础知识。初学者完全可以通过这一章的学习掌握MATLAB程序设计的基本方法,并在随后章节的学习中逐步提高MATLAB编程能力。
第2章 MATLAB在微积分中的应用
本章按照微积分课程的内容顺序安排实例,符合一般大学数学学习的要求,同时可以让学生在学习基础数学的时候就能够用MATLAB处理学习中的问题,激发学习兴趣。
第3章 复变函数与积分变换
本章介绍MATLAB在复变函数中的一些基本应用。复变函数是部分理工科的数学基础课程之一,对复变函数没有兴趣或者用不到这方面内容的读者可以跳过这一章而不会影响后面章节的阅读。
第4章 线性方程组数值方法
线性方程组数值方法是数值分析的基本问题之一,其基本的计算方法主要可以分为直接法和迭代法。对于一些高阶方程组,迭代法因简单好用而非常吸引人,由于迭代法具有更强的竞争力,大部分教材会先介绍直接法后介绍迭代法。事实上,迭代法涉及的数学内容要深刻一些,但是使用却相对简单,所以在这一章中首先介绍一些重要的迭代算法,随后介绍一些直接算法。
第5章 非线性方程的求根
本章介绍常用的求根方法,如二分法、不动点迭代法等。迭代法使用起来虽然简单,但是其理论内涵很丰富。这一章是非线性方程组计算方法的基础。
第6章 非线性方程组与最优化方法
本章介绍多种非线性方程组与最优化的计算方法。在一般的大学数值分析教材中,对非线性方程组介绍得不多,考虑到一些科技应用问题,所以在这一章中比较详细地给出了多种计算方法。
第7章 矩阵特征值及特征向量
本章给出矩阵特征值的不同计算方法。特征值与特征向量也是数值分析的一个基本问题,这一章除了介绍一般的特征值计算方法外,还介绍了广义特征值问题。
第8章 插值与函数逼近
本章介绍常用的插值与函数逼近方法。这一章的内容是许多应用数学问题的基础,比如数值积分方法就是以插值理论为基础的。此外,还比较详细地介绍了正交多项式问题。本章的内容是相当重要的,所以用比较大的篇幅来进行介绍。
第9章 估计、滤波与数据拟合
这一章的内容以实用性较强为特点。在讲解时,力求联系实际应用问题,同时联系数学原理,让读者既直观地理解处理的方法,又真正有效地从数学上掌握这些工具。
第10章 数值积分
本章主要介绍一般类型的数值积分方法,同时介绍高斯系列数值积分方法,涉及广义积分与瑕积分问题。
第11章 常微分方程数值方法
本章从最基本的Euler方法开始逐步介绍一些相关的计算方法。常微分方程是描述自然科学最常用的工具之一,所以这一章侧重于一些实际应用范例。此外,本章还介绍了振动理论问题,并介绍了如何把MATLAB实例报告发布为HTML文件。
第12章 数值方法应用范例(一)
结合前面章节介绍的数值方法,本章介绍几个综合性较强的数值分析实例。这几个实例都比较典型,涉及宇航、天文、航天器运动、分形等领域。实例的处理方法比较多样,对于前面章节介绍的数值分析基本方法是一种复习,同时可以提高读者对应用问题的综合分析能力。
第13章 数值方法应用范例(二)
为了更深入地介绍数值分析的应用,本章以小专题的形式逐步深入地介绍空间导航系统。空间导航系统在现代生活中已经非常普遍,所以读者对这一问题不会感到陌生。在实例中侧重问题的分析,然后利用数值方法解决问题。
附录A 数值分析中的泛函理论介绍
考虑到数值分析多处都会用到泛函理论,而一般大学数学基础课中没有开设这门课,所以本附录给出本书中需要用到的基本泛函理论,这样读者在理解一些算法时就不会太吃力。
附录B 程序调试方法
本附录介绍程序调试的基本方法与步骤。程序调试方法是每个程序员都要面对的一个基本技能,但在很多程序设计书籍中都没有介绍,这对读者来说无疑是一个遗憾——没有掌握程序调试方法,就没有真正掌握编程。
附录C 常用数值分析理论及应用资源
本附录罗列一些科学计算的网络资源。读者在遇到问题时,应主动想办法查阅文献,同时关注数值分析方面最新的科研进展。
本书特点
本书叙述清晰,语言通俗易懂,强调基础的编程能力,内容涵盖数值分析的多个方面。书中的实例部分给出基本的数学原理,力求简单实用,避免烦琐的数学证明。
本书是在前面版本的基础上,吸纳读者的意见,按MATLAB软件目前的最新版本20.0进行升级的。本书力求从读者需求的角度出发,结合大学相关数学课程安排章节。即使对微积分不熟悉的读者,通过第2章的学习也可以为后面章节的学习打下基础。当然,如果读者正在学习微积分知识,第2章的内容也可作为不错的学习辅导资料。
对数值分析的研究很大程度上是为了解决实际的科研问题,鉴于此,本书强调数值分析的实际应用,在相关章节合适的地方都有实际应用范例。同时,为了加强读者综合运用各种数值分析方法处理应用问题的能力,还介绍了一些比较综合的案例。这些案例要先进行一定的理论分析,然后建立数学模型,进而采用数值方法结合分析方法求解。书中的范例都有一定的工程背景,而不是主观编写的建模范例。
另外,本书还有一个特点,就是突出了计算可视化的思想。这一方法的实现紧密结合了MATLAB自身在图形绘制方面的优势。在现代科技论文中,大部分都有图形表述,有时“一图胜千言”(图形表述会为论文增色许多)。
本书以大学理工科学生为读者对象,可以作为数值分析实验课程的教材,同时,也可供工程技术人员或编程爱好者参考。
下载资源
本书涉及的源代码文件可以从华章公司的网站(www.hzbook.com)下载(搜索到本书以后单击“资料下载”按钮,即可在本书页面上的“扩展资源”模块找到配套资源下载链接)。若下载有问题,请发送电子邮件到booksaga@126.com,邮件主题为“MATLAB数值分析与应用”。
感谢
本书由宋叶志、许小荣、施妍然、王国春编写,在编写的过程中得到了编者所在课题组所有成员的帮助,在此表示感谢。
由于编者水平有限,书中疏漏之处在所难免,欢迎广大读者批评指正,并就相关问题展开讨论。
编 者
2020年6月