解线性方程组的迭代法_第1页
解线性方程组的迭代法_第2页
解线性方程组的迭代法_第3页
解线性方程组的迭代法_第4页
解线性方程组的迭代法_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

解线性方程组的迭代法内容提要引言简单迭代法赛得尔迭代法迭代解法的收敛性

MATLAB的线性方程组求解函数2小结第2页,共31页,2024年2月25日,星期天

根据给定方程组,设计出一个迭代公式,构造一数组的序列,代入迭代公式,计算出,再代入迭代公式,经过k次迭代运算后得到,若收敛于某一极限数组xi,则xi就是方程组的近似解。迭代过程本质上就是计算极限的过程,一般不能得到精确解。迭代法的优点是程序简单,适合于大型方程组求解,但缺点是要判断迭代是否收敛和收敛速度问题。雅可比(Jacobi(1804-1851))迭代法(简单迭代法)赛得尔(Seidel(1821-1896))迭代法迭代解法的基本思想1、引言第3页,共31页,2024年2月25日,星期天设线性代数方程组为2、简单迭代法展开为第4页,共31页,2024年2月25日,星期天若对角元素逐一变量分离得方程组第5页,共31页,2024年2月25日,星期天即此即为迭代公式简单迭代解法的过程如下:1

设定一组初值第i个变量第k次迭代2

第一次迭代:得到第6页,共31页,2024年2月25日,星期天3

第二次迭代:得到4

同样做法,得到第k+1次迭代:第7页,共31页,2024年2月25日,星期天迭代次数k的取值与精度要求有关,按下式判断:若满足则停止迭代为了便于编程,迭代公式可改写为:第8页,共31页,2024年2月25日,星期天function[x,iter,exitflag]=Jacobi_iter(A,b,x0,eps,iter_max)%线性方程组的Jacobi迭代求解(向量形式)%输入参数:%---A:线性方程组的系数矩阵%---b:线性方程组的右端项%---x0:初始向量,默认值为零向量%---eps:精度要求,默认值为1e-6%---iter_max:最大迭代次数,默认值为100%输出参数:%---x:线性方程组的近似解%---iter:迭代次数%---exitflag:迭代成功与否的标志:exitflag=1表示迭代成功%exitflag=0表示迭代失败n=length(b);ifnargin<5|isempty(iter_max);iter_max=100;endifnargin<4|isempty(eps);eps=1e-6;endifnargin<3|isempty(x0);x0=zeros(n,1);enditer=0;exitflag=1;D=diag(diag(A));L=tril(A,-1);U=triu(A,1);J=-inv(D)*(L+U);f=inv(D)*b;whileiter<iter_maxx=J*x0+f;ifnorm(x-x0,inf)<epsbreakendx0=x;iter=iter+1;endifiter==iter_maxexitflag=0;end第9页,共31页,2024年2月25日,星期天function[x,iter,exitflag]=Jacobi_iteration(A,b,x0,eps,iter_max)%线性方程组的Jacobi迭代求解(分量形式)%输入参数:%---A:线性方程组的系数矩阵%---b:线性方程组的右端项%---x0:初始向量,默认值为零向量%---eps:精度要求,默认值为1e-6%---iter_max:最大迭代次数,默认值为100%输出参数:%---x:线性方程组的近似解%---iter:迭代次数%---exitflag:迭代成功与否的标志:exitflag=1表示迭代成功%exitflag=0表示迭代失败n=length(b);ifnargin<5;iter_max=100;endifnargin<4;eps=1e-6;endifnargin<3;x0=zeros(n,1);endx=zeros(n,1);iter=0;exitflag=1;whileiter<iter_maxfori=1:nx(i)=(b(i)-A(i,[1:i-1,i+1:n])*x0([1:i-1,i+1:n]))/A(i,i);endifnorm(x-x0,inf)<epsbreakendx0=x;iter=iter+1;endifiter==iter_maxexitflag=0;end第10页,共31页,2024年2月25日,星期天MATLAB程序设计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:迭代次数太多,现在退出!');return;endend第11页,共31页,2024年2月25日,星期天例:求解方程组clearall;A=[1.0170-0.00920.0095;-0.00920.99030.0136;0.00950.01360.9898];b=[101]';x0=[000]';[x,n]=richason(A,b,x0)x=0.9739-0.00471.0010n=5第12页,共31页,2024年2月25日,星期天

赛得尔迭代法与简单迭代法类似,只是迭代公式有所改进。3、赛得尔迭代法简单迭代法赛得尔迭代法第13页,共31页,2024年2月25日,星期天MATLAB程序设计function[x,n]=gauseidel(A,b,x0,eps,M)ifnargin==3eps=1.0e-6;M=200;elseifnargin==4M=200;elseifnargin<3errorreturn;endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵。。。。。。G=(D-L)\U;f=(D-L)\b;x=G*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend第14页,共31页,2024年2月25日,星期天例:线性代数方程组的迭代解法----赛得尔迭代法clearall;A=[953381;533813017;381301725317];b=[764893547]';x0=zeros(3,1);[x,n]=gauseidel(A,b,x0,1e-4,10)Warning:迭代次数太多,可能不收敛!x=-0.80373.3330-0.2450n=200第15页,共31页,2024年2月25日,星期天

迭代解法的前提条件是迭代解出的近似解序列必须具有收敛性。如果近似解序列是发散的,迭代法则不能获得解。4、迭代解法的收敛性第16页,共31页,2024年2月25日,星期天以下列初值进行简单迭代kX1X2X30000111-14-32-6981663-499-374-42944851-7149-2124第17页,共31页,2024年2月25日,星期天迭代收敛条件:严格对角占优矩阵若不满足收敛条件,适当调整方程次序或作一定的线性组合,就可能满足收敛条件。第18页,共31页,2024年2月25日,星期天格式solve('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')5、MATLAB的线性方程组求解函数2第19页,共31页,2024年2月25日,星期天第20页,共31页,2024年2月25日,星期天格式X=fsolve(FUN,X0)Matlab非线性方程组求解说明:求解方程形式F(X)=0X、F可以是向量或矩阵

X0初值第21页,共31页,2024年2月25日,星期天第22页,共31页,2024年2月25日,星期天实例:基于Matlab的透镜中心偏测量光轴拟合光学中心偏测量仪作为精确测定和严格校正光学系统中心偏误差的仪器,它可以指出透镜组中的各镜面相对于光轴的中心偏移数值大小和方向。它的测量结果具有两个方面的意义:其一是通过根据被测光学件各面的中心误差是否超出,来判定光学件是否合格;其二是根据测量的结果来指导光学系统的装校。为消除被测件在测量仪器上的安装定位过程带来的误差,必须对直接测量的数据进行修正。光轴拟合就是对测量数据的优化和修正的过程。提出一种光轴拟合的数学模型,该数学模型结合了解析方法和数值分析方法,考虑了中心偏测量的实际情况,在严格的数学模型基础上做了合理的简化,使光轴的拟合问题最终转化为对线性方程组的求解。第23页,共31页,2024年2月25日,星期天第24页,共31页,2024年2月25日,星期天3)应用最小二乘法得到关于四参数的线性方程组。得到各面球心的位置坐标后,按照一般直线拟合的方法,应使各球心对优化轴距离的平方和最小,符合数学上的最小二乘法。N个球心到优化轴距离的平方和:第25页,共31页,2024年2月25日,星期天第26页,共31页,2024年2月25日,星期天第27页,共31页,2024年2月25日,星期天第28页,共31页,2024年2月25日,星期天扩展:基于MATLAB的非线性方程组遗传解法胡斐,赵治国(同济大学汽车学院,上海201804)遗传算法是一种基于自然选择的用于求解有约束和无约束最优问题的方法。遗传算法反复修改包含若干个体的种群。遗传算法在每一步中,随机从当前种群中选择若干个个体作为父辈,并用它们产生下一代子辈。在若干代之后,种群就朝着最优解“进化”。我们可以利用遗传算法

温馨提示

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

评论

0/150

提交评论