2022年数值线性代数课设课件资料.docx
精选学习资料 - - - - - - - - - 数值线性代数课程设计报告姓名:陶英学号:081410124 任课老师 :杨熙南京航空航天高校2022 年 6 月 22 日名师归纳总结 - - - - - - -第 1 页,共 22 页精选学习资料 - - - - - - - - - 求解线性方程组的三种迭代法及其结果比较摘要 当今的环境下, 数值运算越来越依靠于运算机; 大规模科学运算和工程技术 中很多问题的解决, 最终归结为大型稀疏线性方程组的求解,其求解时间在整个问题求解时间中占有很大的比重,有的甚至达到80%;由于现今科学争论和大型项目中各种复杂的可以对运算精度和运算速度的要求越来越高;因此,作为大规模科学运算基础的线性代数方程组的高效数值求解引起了人们的普遍关注;这种方程组的求解一般采纳迭代法;关于迭代法,是有很多种解决公式的:Jacobi ,G-S和超放松迭代法;这三种方法的原理大致相同,Jacobi 需要给定初向量, G-S就需要给定初值,超放松法是对 Guass-Seidel 迭代法的加权平均改造; 而本文就是对大型稀疏线性方程组迭代求解与三种迭代法( Jacobi,Gauss-Seidel和超放松迭代法)的收敛速度与精确解的误差比较做出争论;关键词: Jacobi 迭代法; Gauss-Seidel 迭代法; SOR迭代法;线性方程组名师归纳总结 - - - - - - -第 2 页,共 22 页精选学习资料 - - - - - - - - - 1 方法与理论的表达1.1 迭代法简介1.Jacobi 迭代法:对于非奇特线性方程组就原方程组可改写为:其中给定初始向量:Ax=b,令 A=D-L-U,其中由( 2.2 )可以构造迭代公式:其重量形式为:名师归纳总结 - - - - - - -第 3 页,共 22 页精选学习资料 - - - - - - - - - 2. Guass-Seidel 迭代法:类似于 Jacobi 迭代法,给定初值:令就得到 Guass-Seidel 公式:其重量形式为:3. 超放松迭代法( SOR 迭代法):SOR迭代法是对 Guass-Seidel 迭代法的加权平均改造,即名师归纳总结 - - - - - - -第 4 页,共 22 页精选学习资料 - - - - - - - - - 为 Guass-Seidel 迭代解,即它的重量形式为:其中 称为放松因子,当 >1 时称为超放松;当 <1 时叫低放松; =1 时就是 Guass-Seidel 迭代;上述三种经典迭代法收敛的充分必要条件是迭代矩阵谱半径小于 1;谱半径不易求解,而在肯定条件下,通过系数矩阵 A 的性质可 判定迭代法的收敛性;定理 1:如系数矩阵 A 是严格对角占优或不行约对角占优,就 Jacobi 迭代法 和 Gauss-Seidel迭代法均收敛;定理 2:(1)SOR 迭代法收敛的必要条件是 0<w<2;0<w<1,就 SOR(2)如系数矩阵 A 严格对角占优或不行约对角占优且 迭代法收敛; w=1 时, SOR 迭代法退化为 Gauss-Seidel迭代法;名师归纳总结 - - - - - - -第 5 页,共 22 页精选学习资料 - - - - - - - - - 2 数值结果2.1 问题考虑两点边值问题:d2ydya , 0a1y11ea 1exaxxiih,i,12 ,.n1,得dx2dxy 0 ,0y1 1 .简洁知道它的精确解为:1/为了将微分方程离散,把0,1 区间 n 等分,令 h=1/n,到差分方程h yi12hyiy i1ah2,从而得到迭代方程组的系数矩阵A;对=1,a=1/2,n=100, 分别用 jacobi ,G-S,超放松迭代法分别求线性方程组的解,要求 4 位有效数字,然后比较与精确解的误差;对=0.1 ,=0.01 ,=0.001,考虑同样问题;1. 方程的表示及储备由于此题中线性方程组的系数矩阵为三对角矩阵,所以可以采纳紧缩方法储备,即然后在矩阵乘法时对下标处理一下即可;但是考虑到三种迭代方法的一般性,且此题中 n=200并不是很大, 所以试验中并没有采纳紧缩储备,而是采纳了直接储备;2. 边值条件的处理由于差分得到的方程组的第一行和最终一行中分别显现了边值 y0 与 y1 作为常数项,因此要在常向量的第一项和最终一项作一些修改:名师归纳总结 - - - - - - -第 6 页,共 22 页精选学习资料 - - - - - - - - - 3. 迭代终止条件第一确定要求的精度tol ,我们期望当就停止迭代;对于迭代格式,如且,就迭代序列的第 k 次近似解和精确解之间有估量式;由题目要求知我们需要有,即 即可;而此题中 q 可近似取为,因此最终令迭代终止条件为4.SOR 迭代中正确放松因子的选取由于 SOR 迭代法的成效和其放松因子 弛因子;当挑选正确放松因子w的选取有关,所以有必要选取合适的松时, SOR 方法的迭代速度最快;Matlab 实现:迭代矩阵是 n-1 阶的,不是 n 阶;等号右端向量 b 的最终一项,不是 ah2,而是 ah2-eps-h 名师归纳总结 - - - - - - -第 7 页,共 22 页精选学习资料 - - - - - - - - - 2.2 精确解y11ea1exax1/带入 a=1/2,=1 代码:>> clear >> x=linspace0,1; truy=1-0.5/1-exp-1/1*1-exp-x./1+x.*0.5; figure; plotx,truy,'g','LineWidth',1.5; hold on; Grid 图:名师归纳总结 - - - - - - -第 8 页,共 22 页精选学习资料 - - - - - - - - - 2.3 三种迭代法Jacobi 法:代码见附录 Eps=1 结果:迭代次数 k:22273 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)Eps=0.1 结果:迭代次数 k:8753 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 9 页,共 22 页精选学习资料 - - - - - - - - - Eps=0.01 结果:迭代次数 k:661 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 10 页,共 22 页精选学习资料 - - - - - - - - - G-S迭代法: 代码见附录 Eps=1 结果:迭代次数 k:11125 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 11 页,共 22 页精选学习资料 - - - - - - - - - Eps=0.1 结果:迭代次数 k:4394 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 12 页,共 22 页精选学习资料 - - - - - - - - - Eps=0.01 结果:迭代次数 k:379 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)超放松法: 代码见附录名师归纳总结 - - - - - - -第 13 页,共 22 页精选学习资料 - - - - - - - - - Eps=1 w=1.56 结果:迭代次数 k:3503 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)Eps=0.1 w=1.56 结果:迭代次数 k:1369 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 14 页,共 22 页精选学习资料 - - - - - - - - - Eps=0.01 w=1.56 结果:迭代次数 k:131 结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)名师归纳总结 - - - - - - -第 15 页,共 22 页精选学习资料 - - - - - - - - - 3 分析争论及心得体会3.1 三种方法的比较Jacobi 、G-S、超放松法,三者都能够取得对精确解的良好靠近,但是,在相同的精度条件下,三者的收敛速度是不一样的,jacobi<G-S< 超放松,也就是说,在迭代次数相同的条件下,精度:jacobi<G-S< 超放松;3.2 心得体会这次课程设计, 平常感觉挺简洁的那些枯燥单调的代码和数学公式,真正到了自己运用的时候却无从下手, 但是,解决问题的过程恰是不断学习的过程:数学算法转换为代码的过程要对题目有深化的明白,然后对程序函数定义仍要有一定的把握才能, 通过这个的过程让我巩固了自己的数学学问,对数学专业学问和MATLAB的操作有了更深的体会;课程设计中遇到的问题只凭自己苦思冥想是不能全部解决的,这是同学老师的建议和网络给了我很大的帮忙; 遇到自己解决不了的问题时, 多多向老师同学请教,或许问题就能迎刃而解;名师归纳总结 - - - - - - -第 16 页,共 22 页精选学习资料 - - - - - - - - - 4 参考文献1徐树方 .数值线性代数 .北京:北京高校出版社 ,1995. 2马昌凤 .现代数值分析 .北京:国防工业出版社 .2022. 3刘春凤 ,米翠兰 .有用数值分析教程 .北京冶金工业出版社 .2006 5 附录源代码1.Jacobi :function y,k=jacobi2a,eps,h,delta n=1.0/h; A=onesn-1; y=zerosn-1,1; z=zerosn-1,1; k=0; for i=1:n-1 for j=1:n-1 Ai,j=0; end end for i=1:n-1 Ai,i=-2*eps+h; end for i=1:n-1 for j=1:n-1 if i=j+1 Ai,j=eps; end if i=j-1 Ai,j=eps+h; end end end b=zerosn-1,1; 名师归纳总结 - - - - - - -第 17 页,共 22 页精选学习资料 - - - - - - - - - for i=1:n-2 bi,1=a*h2; end bn-1,1=a*h2-eps-h; D=zerosn-1; for i=1:n-1 Di,i=Ai,i; end L=zerosn-1; for i=1:n-1 for j=1:n-1 if i>j Li,j=-Ai,j; end end end U=zerosn-1; for i=1:n-1 for j=1:n-1 if i<j Ui,j=-Ai,j; end end end B=DL+U; g=Db; while 1 z=B*y+g; if normz-y,inf<delta break ; end y=z;k=k+1; endx=linspace0,1; truy=1-a/1-exp-1/eps*1-exp-x./eps+x.*a; figure; plot100*x,truy,'g' , 'LineWidth',5; hold on; grid hold on; ploty, 'b' 2.G-S: 名师归纳总结 - - - - - - -第 18 页,共 22 页精选学习资料 - - - - - - - - - function n=1.0/h; y,k=gs2a,eps,h,delta A=onesn-1; y=zerosn-1,1; z=zerosn-1,1; k=0; for i=1:n-1 for j=1:n-1 Ai,j=0; end end for i=1:n-1 Ai,i=-2*eps+h; end for i=1:n-1 for j=1:n-1 if i=j+1 Ai,j=eps; end if i=j-1 Ai,j=eps+h; end end end b=zerosn-1,1; for i=1:n-2 bi,1=a*h2; end bn-1,1=a*h2-eps-h; D=zerosn-1; for i=1:n-1 Di,i=Ai,i; end L=zerosn-1; for i=1:n-1 for j=1:n-1 if i>j Li,j=-Ai,j; end end end U=zerosn-1; for i=1:n-1 for j=1:n-1 名师归纳总结 - - - - - - -第 19 页,共 22 页精选学习资料 - - - - - - - - - if i<j Ui,j=-Ai,j; end end end B=DL+U; g=Db; while 1 z=D-LU*y+D-Lb; if normz-y,inf<delta endbreak ; y=z;k=k+1; endx=linspace0,1; truy=1-a/1-exp-1/eps*1-exp-x./eps+x.*a; figure; plot100*x,truy,'g' , 'LineWidth',5; hold on; grid hold on; ploty, 'b' 3.SOR:function y,k=sora,eps,h,delta,w n=1.0/h; A=onesn-1; y=zerosn-1,1; z=zerosn-1,1; k=0; for i=1:n-1 for j=1:n-1 Ai,j=0; end end for i=1:n-1 Ai,i=-2*eps+h; end for i=1:n-1 for j=1:n-1 if i=j+1 Ai,j=eps; end名师归纳总结 - - - - - - -第 20 页,共 22 页精选学习资料 - - - - - - - - - if i=j-1 Ai,j=eps+h; end end end b=zerosn-1,1; for i=1:n-2 bi,1=a*h2; end bn-1,1=a*h2-eps-h; D=zerosn-1; for i=1:n-1 Di,i=Ai,i; end L=zerosn-1; for i=1:n-1 for j=1:n-1 if i>j Li,j=-Ai,j; end end end U=zerosn-1; for i=1:n-1 for j=1:n-1 if i<j Ui,j=-Ai,j; endendend B=DL+U; g=Db; Lw=D-w*L-1*1-w*D+w*U; while 1 z=Lw*y+w*D-w*L-1*b; if normz-y,inf<delta break ; end y=z;k=k+1; endx=linspace0,1; truy=1-a/1-exp-1/eps*1-exp-x./eps+x.*a; figure; 名师归纳总结 - - - - - - -第 21 页,共 22 页精选学习资料 - - - - - - - - - plot100*x,truy,'g' , 'LineWidth',5; hold on; grid hold on; 名师归纳总结 ploty,'b' 第 22 页,共 22 页- - - - - - -