MATLAB语言在 现代科学运算中的应用_第1页
MATLAB语言在 现代科学运算中的应用_第2页
MATLAB语言在 现代科学运算中的应用_第3页
MATLAB语言在 现代科学运算中的应用_第4页
MATLAB语言在 现代科学运算中的应用_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010薛定宇、陈阳泉著基于MATLAB/Simulink的系统仿真技术与应用(第2版),清华大学出版社,2010第第3章章 MATLAB语言在语言在现代科学运算中的应用现代科学运算中的应用薛定宇东北大学信息学院Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010

2、第第3章章 MATLAB语言在语言在现代科学运算中的应用现代科学运算中的应用主要内容解析解与数值解数值线性代数问题及求解微积分问题的MATLAB求解常微分方程的数值解法非线性方程与最优化问题求解动态规划及其在路径规划中的应用数据插值与统计分析Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.1 解析解与数值解解析解与数值解现代科学与工程的进展离不开数学。数学家们感兴趣的问题和其他科学家、工程技术人员所关注的问题不同数学家对数学问题的解析解,或称

3、闭式解(closed-form solution)和解的存在性严格证明工程技术人员对如何求出数学问题的解更关心能用某种方法获得问题的解则是工程技术人员更关心的问题最直接方法就是通过数值解法技术Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010必须使用数值解的场合必须使用数值解的场合(1) 解析解不存在p不存在解析解祖冲之,公元480年,公元前250年(?)阿基米德近年,精确到60亿位 数值运算取16位有效数字足矣,3.1418也未尝不可定积分 没有

4、解析解数学家的方法:引入特殊函数 erf(x)别介意erf(0.5)=?工程技术人员需要得出近似的数值解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010(2) 解析解存在但不实用时nn矩阵的行列式解析解:代数余子式的方法,n阶矩阵行列式化成n-1阶行列式,n-1阶变换成n-2阶结论:任意阶次的矩阵行列式均有解析解忽略了计算量问题:n=20,计算量为每秒百亿次的计算机计算3000年!550550矩阵行列式数值解不足1s即可得出很多领域需要计算更大规

5、模矩阵的行列式Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010其他应用数值解的场合其他应用数值解的场合力学领域常用有限元法求解偏微分方程在航空、航天与自动控制领域经常用数值线性代数与常微分方程的数值解法等解决实际问题工程与非工程系统的计算机仿真差分方程、常微分方程的数值解法高科技的数字信号处理领域快速Fourier变换已经成为其不可或缺的工具Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用

6、薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2 数值线性代数问题及求解数值线性代数问题及求解本节主要内容特殊矩阵的MATLAB输入矩阵基本分析与运算矩阵逆与广义逆运算矩阵的相似变换与分解矩阵的特征值与特征向量代数方程求解矩阵的非线性运算Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.1 特殊矩阵的特殊矩阵的MATLAB输入输入零矩阵、幺矩阵和单位矩阵伪随机元素矩阵伪随机数”:通过某种数学

7、公式生成的、满足某些随机指标的数据,是可以重复的Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010对角矩阵Hilbert矩阵及逆矩阵Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010伴随矩阵由首一多项式生成的矩阵MATLAB函数p为多项式向量,自动首一化Monday, 2010-10- 11, 22:0

8、6:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Hankel矩阵反对角线上元素相等MATLAB调用格式举例Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Vandermonde矩阵已知向量符号矩阵及矩阵转换数值矩阵转符号矩阵符号矩阵转双精度矩阵Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用

9、薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.3 矩阵基本分析与运算矩阵基本分析与运算矩阵的行列式数学求解MATLAB求解举例矩阵的迹 矩阵的秩 Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010向量范数满足的三个条件 向量的范数矩阵的范数矩阵的范数矩阵的范数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/

10、Simulink的系统仿真技术与应用清华大学出版社,2010常用矩阵范数 MATLAB求解函数选项:1, 2, inf, froMonday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010特征多项式、特征方程与特征根特征多项式、特征方程与特征根特征多项式特征方程特征根:上述方程的根例:A 矩阵的特征多项式有误差,对某些问题可能有极大误差Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于

11、MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Leverrier-Faddeev递推算法递推算法递推求解多项式系数 其中Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010多项式及多项式矩阵的求值多项式及多项式矩阵的求值矩阵多项式MATLAB求解:点运算多项式MATLAB求解:Hamilton-Cailey定理Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、

12、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.5 矩阵逆与广义逆运算矩阵逆与广义逆运算矩阵的逆矩阵inv()函数可以用于符号矩阵求解奇异矩阵和长方形矩阵可以求广义逆这样的广义逆不唯一Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Moore-Penrose广义逆广义逆前面介绍的广义逆有无穷多解引入最优化准则 则可以得出唯一的逆矩阵,满足下面条件 称为Moore-Penrose广义逆,或伪逆Monday

13、, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矩阵广义逆举例矩阵广义逆举例长方形矩阵MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.6 矩阵的相似变换与分解矩阵的相似变换与分解对方阵A,存在非奇异方阵T,使得上述变换称为相似变换,T 称为变换矩阵正交矩阵 满足化零空间 (null sp

14、ace)Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矩阵的三角分解矩阵的三角分解任意矩阵分解成 MATLAB函数这样构造的函数使用了主元素法,不能保证得出的一定是三角矩阵,也可能是置换Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010为符号矩阵重载了lu()函数数值分解解析分解Monday, 20

15、10-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010对称矩阵的对称矩阵的Cholesky分解分解LU分解的特例:MATLAB函数:例:对称33 Hilbert矩阵重载的chol()函数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矩阵的奇异值分解矩阵的奇异值分解任意矩阵满足奇异值分解 MATLAB命令:条件数:Monda

16、y, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.6 矩阵的特征值与特征向量矩阵的特征值与特征向量特征值、特征向量定义MATLAB求解广义特征值例Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.7 代数方程求解代数方程求解线性方程求解解的三种可能:唯一解无穷多解无解Monday, 2010-10

17、- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010(1) 唯一解:A为非奇异方阵 方程的解 MATLAB语句:(2) 方程有无穷多解 构造解的判定矩阵 如果(3) 无解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010代数方程求解举例代数方程求解举例例1 检验解的类型求出所有的解基于基本变换的另一种解法Monday, 2010-10

18、- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矛盾方程的最小二乘解矛盾方程的最小二乘解判定解的形式求最小二乘解该解不满足原始代数方程组,但该解能使解的整体误差(误差向量的范数)最小Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Kronecker积与矩阵方程求解积与矩阵方程求解线性代数方程记方程可以转换成Monday, 201

19、0-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Sylvester方程求解方程求解Sylvester方程又称为广义Lyapunov方程应用Kronecker乘积,可以变换为方程的解析解为Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Sylvester方程求解函数方程求解函数Lyapunov方程离散Lyapunov方程S

20、ylvester方程例Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Riccati方程求解方程求解Riccati方程MATLAB求解例Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.2.8 矩阵的非线性运算矩阵的非线性运算面向矩阵元素的非线性运算常用函数表Monday, 2010-10- 11

21、, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矩阵函数矩阵函数矩阵输入矩阵指数函数的数值解和解析解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010矩阵三角函数矩阵三角函数利用Euler公式可以推导出可以利用expm()函数求三角函数例扩展:利用funm()函数的重载函数求任意矩阵函数的解析解Monday, 2010-10- 11, 2

22、2:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.3 微积分问题的微积分问题的MATLAB求解求解高等数学中的各种问题可以通过手工的方式推导出来,也可以通过计算机求出其解析解MATLAB的符号运算工具箱能直接求解相关的问题,用一个语句即可得出结果本节主要内容微积分问题的解析解运算数值差分与微分运算数值积分运算多重定积分的数值求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿

23、真技术与应用清华大学出版社,20103.3.1 微积分问题的解析解运算微积分问题的解析解运算极限问题求解求解高阶导数 :不定积分运算定积分运算给定函数的前n项Taylor级数展开级数求和多重微分、积分可以嵌套使用相应函数 Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010微积分问题解析解求解实例微积分问题解析解求解实例函数的极限给定函数级数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定

24、宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010级数函数数值方法无法求解解析解二重积分问题Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010 3.3.2 数值差分与微分运算数值差分与微分运算数值差分MATLAB提供的diff()函数可以对数值向量求取差分数值微分算法前向差分算法后向差分算法算法精度:Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇

25、、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010中心差分的数值微分算法中心差分的数值微分算法各阶数值微分公式(精度 )编写MATLAB函数,调用格式Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010程序清单程序清单Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010数

26、值微分实例数值微分实例原始函数步距选择0.05,生成样本点数据各阶数值微分解析解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.3.3 数值积分运算数值积分运算一维函数的定积分解析解经常不存在,需要求数值解基于MATLAB的数值积分方法各种积分函数quad()、quadl() 、quadgk()例相应的不定积分没有解析解这里演示数值解方法Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用

27、薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010描述被积函数的三种方法匿名函数M-函数inline函数求解命令Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.3.4 多重定积分的数值求解多重定积分的数值求解矩形边界的定积分MATLAB求解函数例:双重积分该函数不能处理非矩形区域问题Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉

28、基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010非矩形区域的多重积分问题非矩形区域的多重积分问题非矩形区域的双重积分问题美国学者Howard Wilson与Bryce Gardner开发了数值积分工具箱(Numerical Integration Toolbox,NIT工具箱)可以直接求解需要用户编写3个函数不能返回被积函数的调用次数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010双重积分求解实例双重积分求解实例非矩

29、形边界的重积分编写三个函数,然后求出积分值多重超维长方体边界的定积分quadg()Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4 常微分方程的数值解法常微分方程的数值解法微分方程初值问题的数值解法实际上是动态系统数字仿真的基础一阶常微分方程组状态向量初值问题:已知初值其他形式的微分方程和边值问题等均可以通过这里提供的方法求取出来Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇

30、、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010本节主要内容本节主要内容常微分方程的数值解法MATLAB下的常微分方程求解函数刚性方程的MATLAB求解微分方程组的变换和技巧微分方程数值解正确性的验证微分代数方程的数值解法线性随机微分方程的数值解法常微分方程的解析求解方法Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.1常微分方程的数值解法常微分方程的数值解法Euler算法演示微分方程 时刻的值为迭代

31、公式这样就能把数值解一步一步计算出来Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010精度与速度问题精度与速度问题Euler算法的精度为o(h)减小计算步长h是有代价的:增加计算量增大累计误差动态系统分析应该注意选择适当的步长:不能太大也不能太小改进求解算法:Runge-Kutta、Adams等采用变步长算法:变化平缓是采用大步长,迅速变化时采用小步长Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算

32、中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.2 MATLAB下的常微分方程下的常微分方程求解函数求解函数主求解函数其他可用的求解函数,调用格式一致ode23、ode15s()、ode113()options可以由odeget和odeset函数处理微分方程可以用下面的方式之一描述匿名函数M-函数inline函数:不建议使用Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010常用常用opti

33、ons选项选项Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010常微分方程举例常微分方程举例Lorenz方程初值描述微分方程,然后求解绘图Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Van der Pol方程求解方程求解Van der Pol方程选择状态变量带有附加参数m,可以求解Monday,

34、2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010隐式微分方程求解举例隐式微分方程求解举例隐式微分方程可以写出Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Van der Pol刚性方程刚性方程Van der Pol方程m=1000, 用ode45不能求解常用刚性微分方程求解函数ode15s(),可以根据需要自动选

35、择合适的算法阶次,得出微分方程的数值解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010教科书给出的刚性微分方程求解教科书给出的刚性微分方程求解微分方程解析解 常规微分方程求解合适直接求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010真正的刚性微分方程求解真正的刚性微分方程求解常微分方程初值Mond

36、ay, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.5 微分方程组的变换和技巧微分方程组的变换和技巧解决其他形式微分方程到标准型 的变换方法单个高阶常微分方程处理方法选择一组状态变量原微分方程可以变换为Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010高阶常微分方程组的变换方法高阶常微分方程组的变换方法一

37、般高阶微分方程组选择状态变量Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Apollo卫星轨迹卫星轨迹卫星方程选择状态变量Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010微分方程变换成Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、

38、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010直接求解直接求解结果是错误的,应该检验Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.6 微分方程数值解微分方程数值解正确性的验证正确性的验证微分方程求解后应该对得出的解进行验证具体验证方法采用不同的求解算法,看看是不是能得出完全一致的结果可以采用不同的RelTol属性:一般情况下,即使该参数有极大的变化,如从10-3变成10-10,计算量也不会有过大的变

39、化,所以可以考虑采用较小的RelTolMonday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.7 微分代数方程的数值解法微分代数方程的数值解法微分代数方程 (differential algebraic equation, DAE),是指在微分方程中,某些变量间满足某些代数方程的约束微分代数方程标准型将 f=odeget 中Mass属性合理设置例Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的

40、应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010微分代数方程的标准化 求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010简单微分代数方程到常规方程的转换简单微分代数方程到常规方程的转换由第3方程可见代入前两个方程得出MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术

41、与应用清华大学出版社,2010复杂微分代数方程的求解复杂微分代数方程的求解前面的例子典型微分代数方程Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.8 线性随机微分方程的数值解法线性随机微分方程的数值解法线性连续系统的状态方程模型Gauss白噪声向量满足定义一个变量可以证明协方差矩阵Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系

42、统仿真技术与应用清华大学出版社,2010原微分方程重新写成状态变量的解析解可以写成得出离散化模型Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010且可以证明 也为Gauss白噪声式中利用Taylor级数展开,得出Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010递推公式递推初值由奇异值分解Cholesk

43、y分解得离散模型Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010离散算法的离散算法的MATLAB编程编程Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010线性系统随机输入分析线性系统随机输入分析传递函数模型可以得出离散化模型Monday, 2010-10- 11, 22:06:29 第3章:MATLA

44、B语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.4.9 常微分方程的解析求解方法常微分方程的解析求解方法线性常系数微分方程可以采用符号运算工具箱中的dsolve()函数求出原问题的解析解Van der Pol方程尝试求取解析解(不可解)Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.5 非线性方程与最优化问题求解非线性方程与最优化问题求解本节主要内容非线性方程组求解无

45、约束最优化问题求解线性规划问题二次型规划问题一般非线性规划问题求解最优化问题的全局搜索解法Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010最优化工具箱求解控制选项最优化工具箱求解控制选项由optimset和optimget函数修改Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.5.1 非线性方程

46、组求解非线性方程组求解求解非线性方程组方程个数与未知数个数一致MATLAB求解函数描述方程的方式匿名函数M-函数inline函数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010方程求解实例方程求解实例二元方程两个未知数,需要变量替换,变成标准型选择变量得出标准型方程描述与求解改变初值,重新求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的

47、系统仿真技术与应用清华大学出版社,2010再改变初值也不能求出其他的根问题:6次多项式方程为什么只有两个根?方程的解析求解图解法图解法只能求出实根精度较低整体感较好Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010方程求解实例方程求解实例二元非线性方程组非线性方程,解析解只能求出一个根图解法Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统

48、仿真技术与应用清华大学出版社,2010非线性矩阵方程的求解非线性矩阵方程的求解Riccati方程利用 只能求出一个根问题:非线性矩阵方程到底有多少个根?其他矩阵方程是否能求解?Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010Riccati矩阵方程求解程序矩阵方程求解程序随机初值,死循环,用Ctrl+C中断,8个根Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB

49、/Simulink的系统仿真技术与应用清华大学出版社,20103.5.2 无约束最优化问题求解无约束最优化问题求解无约束最优化问题物理意义如何求解最大化问题MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010无约束最优化求解举例无约束最优化求解举例无约束最优化问题直接求解提高求解精度控制双精度数据结构能得到的最好结果Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉

50、基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.5.3 线性规划问题线性规划问题线性规划的数学模型MATLAB求解函数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010线性规划问题求解实例线性规划问题求解实例四元线性规划问题目标函数一个乘-1转换成最小值问题不等式约束可以写成矩阵形式MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳

51、泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.5.4 二次型规划问题二次型规划问题二次型规划标准型MATLAB求解函数Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.5.5 一般非线性规划问题求解一般非线性规划问题求解非线性规划标准型MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系

52、统仿真技术与应用清华大学出版社,2010有约束最优化求解举例有约束最优化求解举例最优化问题约束统计描述MATLAB求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010第2约束是线性的,可以从非线性约束剔除新的求解语句还可以利用目标函数梯度信息求解目标函数重新定义Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社

53、,20103.5.6 最优化问题的全局搜索解法最优化问题的全局搜索解法曲面介绍的传统最优化方法都是从某个预先选定的初始搜索点出发寻找问题最优解的数值方法,这样的搜索方法对线性规划、二次型规划这类“凸问题”有效对非凸问题,可以粗略地理解成其目标函数曲面凹凸不平,这样,如果初值选择不当,则很容易陷入局部最优值的求解区域可以考虑并行求解方法。较好的并行求解方法遗传算法及其改进形式、粒子群算法、模拟退火方法及蚁群算法等Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版

54、社,20103.6 动态规划及其在动态规划及其在路径规划中的应用路径规划中的应用前面介绍的最优化问题是静态最优化问题在实际应用中,例如生产计划制订时,每一年度的计划均取决于前一年的实际情况,这样需要引入动态的最优化问题。动态规划是Richard 在1959年引入的一个新的最优化领域,该成就是所谓的现代控制理论的三个基础之一。该理论在多段决策过程和网络路径优化等领域有重要的作用Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.6.1 图的矩阵表示

55、方法图的矩阵表示方法图的基本概念在图论中,图是由节点和边构成的边是连接两个节点的直接路径如果边是有向的,则图称为有向图否则称为无向图图可以有多种表示方法,最适合计算机表示和处理的是其矩阵表示方法 Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010图的图的MATLAB表示表示可以表示起始节点向量和终止节点向量边向量由稀疏矩阵可以表示图稀疏矩阵和常规矩阵可以用sparse()和full()函数相互转换Monday, 2010-10- 11, 22:06

56、:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.6.2 有向图的路径寻优有向图的路径寻优有向图的最优化问题可以手工求解生物信息学工具箱 (Bioinformatics) 的最优路径求解方法,该工具是Dijkstra算法的MATLAB实现例 路径规划问题:到的最短路径Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010从终止节点反推,得出计算机求解建立

57、图形求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010重新绘制 图的表格描述Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010MATLAB求解建立有向图最短路径求解及解的可视显示Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基

58、于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.6.3 无向图的路径最优搜索无向图的路径最优搜索无向图的MATLAB表示如果A到B节点有路径,则B到A也有同样权值的路径按有向图方式先建立关联矩阵R无向图的关联矩阵还可以手工修改关联矩阵建立了关联矩阵,则可以用前述方法求解Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.7 数据插值与统计分析数据插值与统计分析本节主要内容一维数据的插值拟合二维数据的插值拟合最小二乘

59、曲线拟合技术数据简单排序快速Fourier变换数据分析与统计处理Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,20103.7.1 一维数据的插值拟合一维数据的插值拟合一维函数 f(t) 表达式未知已知一些样本点横轴坐标纵轴坐标MATLAB表示 一维函数插值方法:linear、cubic、spline(建议使用) Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Si

60、mulink的系统仿真技术与应用清华大学出版社,2010插值举例插值举例假设已知的数据点来自函数生成稀疏的样本点插值及其理论值比较Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用清华大学出版社,2010样本点的多项式拟合样本点的多项式拟合为什么用多项式?Taylor展开MATLAB求解函数前面的例子,用不同阶次的多项式逼近拟合效果逼近Monday, 2010-10- 11, 22:06:29 第3章:MATLAB语言在现代科学运算中的应用薛定宇、陈阳泉基于MATLAB/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论