版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、科学计算与科学计算与MATLABMATLAB第十讲解线性方程组的迭代解法第十讲解线性方程组的迭代解法内容提要内容提要n引言引言n简单迭代法简单迭代法n赛得尔迭代法赛得尔迭代法n迭代解法的收敛性迭代解法的收敛性 nMATLAB的线性方程组求解函数的线性方程组求解函数2n小结小结 根据给定方程组,设计出一个迭代公式,构造一根据给定方程组,设计出一个迭代公式,构造一数组的序列数组的序列 ,代入迭代公式,计算出,代入迭代公式,计算出 ,再代,再代入迭代公式,经过入迭代公式,经过k次迭代运算后得到次迭代运算后得到 ,若,若 收敛于某一极限数组收敛于某一极限数组xi,则,则xi就是方程组的近似解。就是方程
2、组的近似解。 迭代过程本质上就是计算极限的过程,一般不能迭代过程本质上就是计算极限的过程,一般不能得到精确解。得到精确解。 迭代法的优点是程序简单,适合于大型方程组求迭代法的优点是程序简单,适合于大型方程组求解,但缺点是要判断迭代是否收敛和收敛速度问题。解,但缺点是要判断迭代是否收敛和收敛速度问题。xik1ix1.雅可比雅可比(Jacobi(1804-1851)迭代法(简单迭代法)迭代法(简单迭代法)2.赛得尔赛得尔 (Seidel (1821 - 1896)迭代法迭代法迭代解法的基本思想迭代解法的基本思想0ixxik1、引言、引言设线性代数方程组为设线性代数方程组为2、简单迭代法、简单迭代法
3、1 1,2,nijjijA xBin展开为展开为11 11221121 1222221 122nnnnnnnnnnA xA xA xBA xA xA xBA xA xA xB若对角元素若对角元素0 1,2,kkAkn逐一变量分离得方程组逐一变量分离得方程组)()2() 1 (1122112223222312221222211131113211121111nxAAxAAxAAABxxAAxAAxAAABxxAAxAAxAAABxnnnnnnnnnnnnnnnnnn即即1,nijiijjjiiiiiABxxAA此即为迭代公式此即为迭代公式简单迭代解法的过程如下:简单迭代解法的过程如下:1 设定一组
4、初值设定一组初值0000120inxxxxkix第第i个变量个变量第第k次迭代次迭代2 第一次迭代:第一次迭代:101, 1,2,nijiijjjiiiiiABxxinAA得到得到111112,(),inx xxx3 第二次迭代:第二次迭代:211, 1,2,nijiijjjiiiiiABxxinAA得到得到222212,(),inxxxx4 同样做法,得到第同样做法,得到第k+1次迭代:次迭代:11, 1,2,nijkkiijjjiiiiiABxxinAA迭代次数迭代次数k k的取值与精度要求有关,按下式判断:的取值与精度要求有关,按下式判断:k+1kii 1,2,xxin若满足则停止迭代若
5、满足则停止迭代为了便于编程,为了便于编程,迭代公式可改写为:迭代公式可改写为:111 1,2,nkkkiiiijjjiixxBA xinAMATLAB程序设计程序设计function x,n=richason(A,b,x0,eps,M)if(nargin = 3) eps = 1.0e-6; M = 200;elseif(nargin = 4) M = 200;EndI =eye(size(A);x1=x0;x=(I-A)*x0+b;n=1;。while(norm(x-x1)eps) x1=x; x=(I-A)*x1+b; n = n + 1; if(n=M) disp(Warning: 迭代
6、次数太多,现迭代次数太多,现在退出!在退出!); return; endend例:求解方程组例:求解方程组1231231231.01700.00920.009510.00920.99030.01360,0,0,00.00950.01360.98981xxxxxxxxxclear all;A = 1.0170 -0.0092 0.0095; -0.0092 0.9903 0.0136; 0.0095 0.0136 0.9898;b=1 0 1;x0 = 0 0 0;x,n=richason(A,b,x0)x = 0.9739 -0.0047 1.0010n = 5 赛得尔迭代法与简单迭代法类似,
7、只是迭代公式有所赛得尔迭代法与简单迭代法类似,只是迭代公式有所改进。改进。3、赛得尔迭代法、赛得尔迭代法11,nijkkiijjjiiiiiABxxAA简单迭代法简单迭代法赛得尔迭代法赛得尔迭代法11111inijijkkkiijjjjiiiiiiiAABxxxAAA MATLAB程序设计程序设计function x,n=gauseidel(A,b,x0,eps,M)if nargin=3 eps= 1.0e-6; M = 200;elseif nargin = 4 M = 200;elseif nargin=eps x0=x; x=G*x0+f; n=n+1; if(n=M) disp(Wa
8、rning: 迭代次数太多,可能不迭代次数太多,可能不收敛!收敛!); return; endend例:线性代数方程组的迭代解法例:线性代数方程组的迭代解法-赛得尔迭代法赛得尔迭代法1231231239 53381765338130174893813017253371754xxxxxxxxxclear all;A = 9 53 381; 53 381 3017; 381 3017 25317;b=76 489 3547;x0=zeros(3,1);x,n=gauseidel(A,b,x0,1e-4,10)Warning: 迭代次数太多,可能不收敛!迭代次数太多,可能不收敛!x = -0.803
9、7 3.3330 -0.2450n = 200 迭代解法的前提条件是迭代解出的近似解序列必须具迭代解法的前提条件是迭代解出的近似解序列必须具有收敛性。如果近似解序列是发散的,有收敛性。如果近似解序列是发散的, 迭代法则不能获得迭代法则不能获得解。解。4、 迭代解法的收敛性迭代解法的收敛性1231231231020111051453xxxxxxxxx1231xxx以下列初值进行简单迭代以下列初值进行简单迭代1230000 xxxkX1X2X30000111-14-32-6981663-499-374-42944851-7149-21241230001xxx迭代收敛条件:严格对角占优矩阵迭代收敛条
10、件:严格对角占优矩阵1 1,2,niiijjj iaain若不满足收敛条件,适当调整方程次序或作一若不满足收敛条件,适当调整方程次序或作一定的线性组合,就可能满足收敛条件。定的线性组合,就可能满足收敛条件。格式格式solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN)5、MATLAB的线性方程组求解函数的线性方程组求解函数2223430 xxyyxx2201auvuv格式格式X=fsolve(FUN,X0)Matlab非线性方程组求解非线性方程组求解说明:说明: 求解方程形式求解方程形式F(X)=0 X、F可以是向量或矩阵可以是向量或矩阵 X0 初值初值2020 xy
11、xyexye 实例:基于实例:基于Matlab的透镜中心偏测量光轴拟合的透镜中心偏测量光轴拟合光学中心偏测量仪作为精确测定和严格校正光学系统中心光学中心偏测量仪作为精确测定和严格校正光学系统中心偏误差的仪器偏误差的仪器,它可以指出透镜组中的各镜面相对于光轴的它可以指出透镜组中的各镜面相对于光轴的中心偏移数值大小和方向。它的测量结果具有两个方面的中心偏移数值大小和方向。它的测量结果具有两个方面的意义意义:其一是通过根据被测光学件各面的中心误差是否超出其一是通过根据被测光学件各面的中心误差是否超出,来判定光学件是否合格来判定光学件是否合格;其二是根据测量的结果来指导光学其二是根据测量的结果来指导光
12、学系统的装校。系统的装校。为消除被测件在测量仪器上的安装定位过程带来的误差为消除被测件在测量仪器上的安装定位过程带来的误差,必必须对直接测量的数据进行修正。光轴拟合就是对测量数据的须对直接测量的数据进行修正。光轴拟合就是对测量数据的优化和修正的过程。提出一种光轴拟合的数学模型优化和修正的过程。提出一种光轴拟合的数学模型,该数学该数学模型结合了解析方法和数值分析方法模型结合了解析方法和数值分析方法,考虑了中心偏测量的考虑了中心偏测量的实际情况实际情况,在严格的数学模型基础上做了合理的简化在严格的数学模型基础上做了合理的简化,使光轴使光轴的拟合问题最终转化为对线性方程组的求解。的拟合问题最终转化为
13、对线性方程组的求解。3)应用最小二乘法得到关于四参数的线性方程组。应用最小二乘法得到关于四参数的线性方程组。得到各面球心的位置坐标后得到各面球心的位置坐标后,按照一般直线拟合的方法按照一般直线拟合的方法,应使各球应使各球心对优化轴距离的平方和最小心对优化轴距离的平方和最小,符合数学上的最小二乘法。符合数学上的最小二乘法。N个个球心到优化轴距离的平方和球心到优化轴距离的平方和:扩展:基于扩展:基于MATLAB的非线性方程组遗传解法的非线性方程组遗传解法胡斐,赵治国胡斐,赵治国(同济大学汽车学院,上海同济大学汽车学院,上海201804)遗传算法是一种基于自然选择的用于求解有约束和无约束遗传算法是一
14、种基于自然选择的用于求解有约束和无约束最优问题的方法。遗传算法反复修改包含若干个体的种群。最优问题的方法。遗传算法反复修改包含若干个体的种群。遗传算法在每一步中,随机从当前种群中选择若干个个体遗传算法在每一步中,随机从当前种群中选择若干个个体作为父辈,并用它们产生下一代子辈。在若干代之后,种作为父辈,并用它们产生下一代子辈。在若干代之后,种群就朝着最优解群就朝着最优解“进化进化”。我们可以利用遗传算法去解决。我们可以利用遗传算法去解决各种最优化问题,包括目标函数是不连续、不可微、随机各种最优化问题,包括目标函数是不连续、不可微、随机或者高度非线性的问题。或者高度非线性的问题。MATLAB的遗传算法与直接搜索工具箱(的遗传算法与直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论