《MATLAB数值计算案例分析》由刘寅、王剑亮、陈靖、刘衍琦、王光辉、史峰编著,以数值分析理论为主线,以MATLAB在数值分析中的应用为主要内容,在介绍数值分析算法原理和基本思想的基础上,侧重于讲解基于MATLAB软件的各种算法的实现。全书共分为12章,分别讲解了MATLAB基础知识、数据插值、数据拟合,数值积分、常微分方程、线性方程组迭代解法、线性方程组的直接解法、非线性方程求解、偏微分方程数值解、数值优化、特征值和特征向量等。每章内容可以分为两个部分,讲解介绍数值分析的原理部分及数值分析方法的MATLAB实现。, 《MATLAB数值计算案例分析》适合高年级本科生、研究生以及相关研究人员使用MATLAB开发实例系列图书MATLAB数值计算案例分析刘寅立王剑亮陈靖刘衍琦王光辉史峰编著京航空航无天卷出社内容简介本书系统讲解了数值分析的方法与理论以及基于 MATLAB软件的编程实现,全书共12章,内容包括 MATLAB编程基础数据插值数据拟合数值积分、常微分方程线性方程组迭代解法线性方程组的直接解法、非线性方程求解、偏微分方程数值解、数值优化、特征值和特征向量等。本书以数值方法原理为主线,以 MATLAB在数值分析中的应用为主要分析对象,在讲解数值分析算法的原理和基本思想的基础上,侧重于基于 MATLAB软件的各种算法的实现本书适合高年级本科生研究生以及相关研究人员使用图书在版编目(CIP)数据MATLAB数值计算案例分析/刘寅立等编著.一北京北京航空航天大学出版社,2011.10ISBN978-7-5124-0547-9I.①MⅡ.①刘…Ⅲ.①计算机辅助计算一软件包, MATLABⅣ.①TP391.75中国版本图书馆CIP数据核字(2011)第151115号版权所有,侵权必究。MATLAB数值计算案例分析刘寅立王剑亮陈靖刘衍琦王光辉史峰编著责任编辑罗晓莉北京航空航天大学出版社出版发行北京市海淀区学院路37号(邮编100191).http://www.buaapress.com.cn发行部电话:(010)82317024传真:(010)82328026读者信箱:goodtextbook@126.com邮购电话:(010)82316936涿州市新华印刷有限公司印装各地书店经销开本:787mm×1092mm1/16印张:14.75字数:378千字2011年10月第1版2011年10月第1次印刷印数:5000册ISBN978-7-5124-0547-9定价:30.00元若本书有倒页脱页缺页等印装质量问题,请与本社发行部联系调换。联系电话:(010)82317024前言在科学和工程领域,科学计算是不可缺少的重要环节。然而,如高次代数方程求根,微分方程求解,复杂函数的积分,非线性最优化等,诸多问题的解析解或解析表达式要么无法给出,要么非常复杂而不便于计算,为解决这些问题,需要采用近似的计算方法—数值方法来求解这些问题。因此,数值分析是科学研究和工程计算领域的一门重要学科,研究的主要内容包括数据插值、拟合、数值积分、数值微分、微分方程求解、线性方程组、方程(组)求根、数值优化、特征值与特征向量等。近年来,随着计算机技术的快速发展,使用计算机进行科学计算已经成为科学研究中不可缺少的环节。伴随着计算工具的进步,各种数值计算软件层出不穷, MATLAB软件即为其中的佼佼者,该软件界面简洁,编程快捷包含功能强大的函数和工具箱,特别适用于数学建模和科学计算,能够解决各种数值分析问题本书以数值分析理论为主线,以 MATLAB在数值分析中的应用为主要内容,在介绍数值分析算法原理和基本思想的基础上,侧重于讲解基于 MATLAB软件的各种算法的实现。全书共分为12章分别讲解了 MATLAB基础知识、数据插值、数据拟合,数值积分、常微分方程线性方程组迭代解法、线性方程组的直接解法非线性方程求解、偏微分方程数值解、数值优化、特征值和特征向量等。每章内容可以分为两个部分,讲解介绍数值分析的原理部分及数值分析方法的 MATLAB实现。本书适合高年级本科生、研究生以及相关研究人员使用。读者在阅读此书时,可以结合程序,一边运行程序,一边从书中寻找每段程序的功能以及原理,并且代入自己的数据和模型本书由刘寅立、王剑亮、陈靖、刘衍琦、王光辉和史峰编著,其中刘寅立完成第7、8、10、12章,王剑亮完成第1、4、5、6章,陈靖完成第2、9章,刘衍琦完成第3、11章,王光辉负责书中各例题的选取及程序的进一步调试工作,全书由史峰和刘寅立负责统稿。本书在写作的过程中,得到了MATLABSKY论坛(www.matlabsky.com)的大力支持。MATLABSKY论坛为本书开辟了读者交流版块,作者长期在线解答读者的各种疑问。我们相信,只有交流才会有进步,只有碰撞才会有火花。感谢天津科技大学理学院,黑龙江科技学院计算机与信息工程学院,东方电子有限公司,华中科技大学机械学院的同事、同学们及笔者的家人们对编者工作的支持,尤其感谢谢中华老师对本书的关心与指导,在成书过程中,谢老师倾注了极大的热情并提出了宝贵的意见和建议。由于作者水平有限,书中尚存缺点和遗漏之处,恳请读者提出宝贵的意见和建议,以便于我们完善和提高。编者2011年3月目录第1章 MATLAB编程基础1.1矩阵的基本操作与基本运算1.1.1矩阵的基本操作……1.1.2矩阵的基本运算1.1.3*与.兴和/与./的区别…1112331.1.4使用find函数索引符合某些特定条件的矩阵元素…1.1.5eps函数与避免除以0的方法1.2 MATLAB的数据结构…··,·41.3变量、脚本与函数………81.3.1变量81.3.2全局变量使用例子1.3.3局部变量不会被替代的例子………1.3.4函数与脚本………101.3.5函数的构成…∴…………………………………………………111.3.6函数的类型………121.3.7函数调用与函数句柄141.3.8可变参数函数调用…141.4 MATLAB技巧……………151.4.1 MATLAB的函数重载,,,..,.,.·,.,,,.,,151.4.2冒号(:)操作符171.4.3Tab键自动补全171.4.4上下箭头回调171.4.5可变参数个数的函数的占位符……………………………171.4.6whos查看…………………………………181.4.7whos通配符的例子∴………………………………………181.4.8程序调试………181.5 MATLAB工具箱函数ode23剖析181.6 MATLAB的帮助文档导航221.7 MATLAB常见错误………………………………………………………………231.7.1常见写法错误…231.7.2字符串连接出错…241.7.3矩阵维数不同的例子…251.7.4赋值出错·∴………………………………………26MATLAB数值计算案例分析凭|第2章数值分析的基本概念……………………………………272.1数值分析的研究对象272.2误差与有效数字………………………………………………302.2.1误差的产生及分类…302.2.2误差的相关概念…………………………………………302.3近似计算中的注意事项…31交流卡登技术2.4数值算法的稳定性∴……………………342.5机器精度…,,,.,,,,,,,,,,,,,,,35第3章数据插值373.1插值与多项式插值……………………………………………………373.2 Lagrange插值………373.2.1 Lagrange插值的定义37论坛可与作者在线交流一3.2.2 Lagrange插值的 MATLAB实现383.3 Newton插值,,,∴………………………………………………403.3.1 Newton插值定义………,,看·,,,,,,·,,、·403.3.2有限差商…………………403.3.3 Newton插值的 MATLAB实现………3.4 Hermite插值,,,,,.,,,,,,,,·,,,,,,,·423.4.1 Hermite插值定义4223.4.2 Hermite插值的 MATLAB实现……433.5分段低次插值………………………………………453.5.1高次插值的 Runge现象453.5.2分段低次 Lagrange插值453.5.3 interp1函数…463.6三次样条插值473.6.1三次样条插值…473.6.2三次样条函数…48第4章数据拟合504.1数据的曲线拟合504.1.1曲线拟合的误差…504.1.2曲线拟合的最小二乘法…………………………………………………514.2多项式拟合…524.2.1多项式曲线拟合524.2.2多项式曲线拟合的 MATLAB实现…………524.2.3 MATLAB多项式曲线拟合应用的扩展……………………544.3圆拟合的例子讲解……………………………………………………………………574.3.1圆拟合问题描述(使用最小二乘方法)574.3.2圆拟合的 MATLAB实现…58目录4.4 cftool自定义拟合…604.5 stool代码自动生成与修改…62第5章数值积分…665.1数值积分的基本思想···,·,,,,,·,,,,·,·,曹·665.1.1数值求积的基本思想665.1.2几种常见的数值积分公式………………………………………………665.2数值求积公式的构造…67在线交流卡登录5.2.1代数精度5.2.2插值型求积公式……………………………………………………………685.2.3 Newton- Cotes求积公式695.3复化积分公式…………………………………………………………………705.3.1复化 Simpson公式705.3.2复化求积公式及其 MATLAB实现………………………………………………7053.3 MATLAB的 trapz函数…7254 Romberg求积公式……技术论坛可与作者在73者54.1数值积分公式误差分析………………………………………73线54.2 Romberg算法…74交5.4.3 Romberg求积公式的 MATLAR实现765.5 Gauss求积公式…,,,,,,,,,,,·,当,·,·,,,…775.5.1 Gauss积分公式……………………………775.5.2 Gauss- Legendre求积公式的 MATLAB实现及应用实例…785.6积分的运算选讲……………………………………………………………795.6.1二重积分……………………………………795.6.2三重积分………………………………………………………795.6.3变上限积分…………………………………………………………………795.6.4符号积分…8156.5 MATLAB常见积分函数列表……82第6章常微分方程836.1常微分方程分类及其表示形式836.1.1 MATLAB关于ODE的函数帮助简介836.1.2 MATLAB ODE Suite中关于ODE的分类…………………………836.2典型常微分方程举例…8462.1一阶常微分方程846.2.2二阶常微分方程,.面,,,,,,……………………………………846.2.3高阶常微分方程…6.2.4边值问题……………856.2.5延迟微分方程………………………………………856.3解的存在性、唯一性和适定性86MATLAB数值计算案例分析6.3.1初值问题的存在性与唯一性………………………………………866.3.2 MATLAB中常微分方程的通用形式及其向量表示876.3.3刚性常微分方程…6.4常微分方程的时域频域表示以及状态方程表示………6.4.1时域与频域表示形式……89线交流卡登录品6.4.2状态空间表示形式…906.5单步多步和显式隐式概念6.6常微分方程数值求解方法构造思想举例.,,,,,,,,,,·,926.7常微分方程数值解的基本原理936.7.1一阶常微分方程与一阶微分方程组…………………………………93技术论坛6.7.2求解区间[a,b]的离散…936.7.3微分方程的离散……………………………93可6.7.4 Taylor展开法………………………………………………………………94与6.7.5常微分方程数值求解的欧拉方法………97作者6.7.6欧拉方法的 MATLAB实现97在6.7.7改进的欧拉方法…98线交6.7.8改进的欧拉方法的 MATLAB实现99流6.7.9四阶龙格-库塔公式的 MATLAB实现996.7.10 Adams预测-校正公式∴……………10046.8常微分方程工具箱………………………………………1026.8.1总体介绍……………1026.8.2各个求解器的特点与比较………………………………1036.8.3使用 defile.m模板求解常微分方程1036.8.4 defile,m模板使用…………………1056.9单自由度振动系统例子1066.9.1单自由度二阶系统基于传递函数与状态空间的 simulink模型求解6.9.2总结………………………………………………………………1106.10三自由度振动系统例子………………………………1106.10.1三自由度振动系统 simulink模型求解以及状态方程的ode45求解器求解……1106.10.2总结………114第7章线性方程组的迭代解法…………………………………………1157.1线性方程组的迭代法概述…1157.1.1迭代法概述及压缩原理……………………………1157.1.2迭代法基本概念…1157.1.3 MATLAB的相关命令………………1177.2常见的线性方程组的迭代法……87.2.1 Jacobi迭代法…1187.2.2 Gauss-Seidel迭代法………20目录7.2.3SOR迭代法1237.3迭代法的收敛性1257.3.1迭代法的收敛性定理…1257.3.2主对角优势………………………………………………………………1257.3.3SOR迭代法的收敛性……………………………………………………126凭封一上的在线交流卡第7章线性方程组的直接解法…1278.1线性方程组的消元法……1278.1.1线性方程组的直接求解方法………1278.1.2 Gauss消去法……………………………………………………………………………1278.1.3 Gauss主元素法1308.1.4 Jordan消去法1338.2矩阵的三角分解…………………………………………………1358.2.1LU分解1368.2.2LU分解的 MATLAB实现1368.2.3对称正定矩阵的 Cholesky分解1388.2.4 Cholesky分解法的 MATLAB实现……………………………………………139论坛可与作者在线交流8.2.5改进平方根法………………………………………………………………1418.2.6改进平方根法的 MATLAB实现1428.3 MATLAB的相关命令…14458.3.1逆矩阵………1448.3.2矩阵的左除及最小二乘解…………………………………………………1458.3.3欠定方程的解145第9章非线性方程求解1479.1求解非线性方程的 MATLAB符号法……………………………………………1479.2二分法…………………………………………………………………………1499.2.1二分法原理1499.2.2二分法的 MATLAB程序1499.3迭代法………………………………………………………………1519.3.1迭代法原理……………………………………………………………………1519.3.2迭代法的几何意义……………1519.3.3迭代法的 MATLAB程序1529.4切线法…单·..,,,,,,.,,,,,、,,,,,、鲁……………………………………………1539.4.1切线法的几何意义……………1549.4.2切线法的收敛性1549.5割线法(弦截法)……1559.5.1割线法的几何意义………1559.5.2割线法的 MATLAB程序……………………………………………1559.6常见非线性方程数值方法的优缺点……………………………………………156