数值线性代数课设课件资料_第1页
数值线性代数课设课件资料_第2页
数值线性代数课设课件资料_第3页
数值线性代数课设课件资料_第4页
数值线性代数课设课件资料_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

数值线性代数课程设计报告姓名:陶英学号:081410124任课教师:杨熙南京航空航天大学2016年6月22日求解线性方程组的三种迭代法及其结果比较纲要现在的环境下,数值计算愈来愈依靠于计算机。大规模科学计算和工程技术中很多问题的解决,最后究结为大型稀少线性方程组的求解,其求解时间在整个问题求解时间中据有很大的比重,有的甚至达到80%。因为当今科学研究和大型项目中各样复杂的能够对计算精度和计算速度的要求愈来愈高。所以,作为大规模科学计算基础的线性代数方程组的高效数值求解惹起了人们的广泛关注。这类方程组的求解一般采纳迭代法。对于迭代法,是有好多种解决公式的:Jacobi,G-S和超废弛迭代法。这三种方法的原理大概相同,Jacobi需要给定初向量,G-S则需要给定初值,超废弛法是对Guass-Seidel迭代法的加权均匀改造。而本文则是对大型稀少线性方程组迭代求解与三种迭代法(Jacobi,Gauss-Seidel和超废弛迭代法)的收敛速度与精准解的偏差比较做出研究。重点词:Jacobi迭代法;Gauss-Seidel迭代法;SOR迭代法;线性方程组方法与理论的表达1.1迭代法简介1.Jacobi迭代法:对于非奇怪线性方程组Ax=b,令A=D-L-U,此中则原方程组可改写为:(2.2)此中给定初始向量:由(2.2)能够结构迭代公式:其重量形式为:Guass-Seidel迭代法:近似于Jacobi迭代法,给定初值:令则获得Guass-Seidel公式:其重量形式为:超废弛迭代法(SOR迭代法):SOR迭代法是对Guass-Seidel迭代法的加权均匀改造,即为Guass-Seidel迭代解,即它的重量形式为:此中ω称为废弛因子,当ω>1时称为超废弛;当ω<1时叫低废弛;ω=1时就是Guass-Seidel迭代。上述三种经典迭代法收敛的充分必需条件是迭代矩阵谱半径小于1。谱半径不易求解,而在必定条件下,经过系数矩阵A的性质可判断迭代法的收敛性。定理1:若系数矩阵A是严格对角占优或不行约对角占优,则Jacobi迭代法和Gauss-Seidel迭代法均收敛。定理2:(1)SOR迭代法收敛的必需条件是0<w<2;(2)若系数矩阵A严格对角占优或不行约对角占优且0<w<1,则SOR迭代法收敛。w=1时,SOR迭代法退化为Gauss-Seidel迭代法。数值结果2.1问题考虑两点边值问题:d2ydya,0a1dx2dxy(0)0,y(1)1.x简单知道它的精准解为:y1a1/(1e)ax1e为了将微分方程失散,把[0,1]区间n平分,令h=1/n,xiih,i1,2,...n1,得到差分方程(h)yi1(2h)yiyi1ah2,进而获得迭代方程组的系数矩阵A。对=1,a=1/2,n=100,分别用jacobi,G-S,超废弛迭代法分别求线性方程组的解,要求4位有效数字,而后比较与精准解的偏差。对=0.1,=0.01,=0.001,考虑相同问题。方程的表示及储存因为此题中线性方程组的系数矩阵为三对角矩阵,所以能够采纳收缩方法储存,即而后在矩阵乘法时对下标办理一下即可。可是考虑到三种迭代方法的一般性,且此题中n=200其实不是很大,所以实验中并无采纳收缩储存,而是采纳了直接储存。边值条件的办理因为差分获得的方程组的第一行和最后一行中分别出现了边值y(0)与y(1)作为常数项,所以要在常向量的第一项和最后一项作一些改正:迭代停止条件第一确立要求的精度tol,我们希望当则停止迭代。对于迭代格式

,若

,则迭代序列

的第k次近似解和精准解之间有预计式由题目要求知我们需要有

。,而由上边的迭代预计,只需,即即可。而此题中q可近似取为,所以最后令迭代停止条件为4.SOR迭代中最正确废弛因子的选用因为SOR迭代法的成效和其废弛因子w的选用相关,所以有必需选用适合的松弛因子。入选择最正确废弛因子时,SOR方法的迭代速度最快。Matlab实现:迭代矩阵是n-1阶的,不是n阶;等号右端向量b的最后一项,不是ah^2,而是ah^2-eps-h2.2精准解x1ay1e1/(1e)ax带入a=1/2,=1代码:clearx=linspace(0,1);truy=(1-0.5)/(1-exp(-1/1))*(1-exp(-x./1))+x.*0.5;figure;plot(x,truy,'g','LineWidth',1.5);holdon;Grid图:2.3三种迭代法Jacobi法:代码见附录Eps=1结果:迭代次数k:22273结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.1结果:迭代次数k:8753结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.01结果:迭代次数k:661结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)G-S迭代法:代码见附录Eps=1结果:迭代次数k:11125结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.1结果:迭代次数k:4394结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.01结果:迭代次数k:379结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)超废弛法:代码见附录Eps=1w=1.56结果:迭代次数k:3503结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.1w=1.56结果:迭代次数k:1369结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)Eps=0.01w=1.56结果:迭代次数k:131结果与精准解的比较图(绿色粗线是精准解,黑色细线是迭代结果)剖析议论及心得领会3.1三种方法的比较Jacobi、G-S、超废弛法,三者都能够获得对精准解的优秀迫近,可是,在相同的精度条件下,三者的收敛速度是不相同的,jacobi<G-S<超废弛,也就是说,在迭代次数相同的条件下,精度:jacobi<G-S<超废弛。3.2心得领会此次课程设计,平常感觉挺简单的那些乏味单一的代码和数学公式,真实到了自己运用的时候却无从下手,可是,解决问题的过程正是不停学习的过程:数学算法变换为代码的过程要对题目有深入的认识,而后对程序函数定义还要有一定的掌握能力,经过这个的过程让我稳固了自己的数学知识,对数学专业知识和MATLAB的操作有了更深的领会。课程设计中碰到的问题只凭自己冥思苦想是不可以所有解决的,这是同学老师的建讲和网络给了我很大的帮助。碰到自己解决不了的问题时,多多向老师同学讨教,也许问题就能水到渠成。参照文件徐树方.数值线性代数.北京:北京大学第一版社,1995.马昌凤.现代数值剖析.北京:国防工业第一版社.2013.刘春凤,米翠兰.适用数值剖析教程.北京冶金工业第一版社.2006附录源代码1.Jacobi:function[y,k]=jacobi2(a,eps,h,delta)n=1.0/h;A=ones(n-1);y=zeros(n-1,1);z=zeros(n-1,1);k=0;fori=1:n-1forj=1:n-1A(i,j)=0;endendfori=1:n-1A(i,i)=-(2*eps+h);endfori=1:n-1forj=1:n-1ifi==j+1A(i,j)=eps;endifi==j-1A(i,j)=eps+h;endendendb=zeros(n-1,1);fori=1:n-2b(i,1)=a*h^2;endb(n-1,1)=a*h^2-eps-h;D=zeros(n-1);fori=1:n-1D(i,i)=A(i,i);endL=zeros(n-1);fori=1:n-1forj=1:n-1ifi>jL(i,j)=-A(i,j);endendendU=zeros(n-1);fori=1:n-1forj=1:n-1ifi<jU(i,j)=-A(i,j);endendendB=D\(L+U);g=D\b;while1z=B*y+g;ifnorm(z-y,inf)<deltabreak;endy=z;k=k+1;endx=linspace(0,1);truy=(1-a)/(1-exp(-1/eps))*(1-exp(-x./eps))+x.*a;figure;plot(100*x,truy,'g','LineWidth',5);holdon;gridholdon;plot(y,'b')2.G-S:function[y,k]=gs2(a,eps,h,delta)n=1.0/h;A=ones(n-1);y=zeros(n-1,1);z=zeros(n-1,1);k=0;fori=1:n-1forj=1:n-1A(i,j)=0;endendfori=1:n-1A(i,i)=-(2*eps+h);endfori=1:n-1forj=1:n-1ifi==j+1A(i,j)=eps;endifi==j-1A(i,j)=eps+h;endendendb=zeros(n-1,1);fori=1:n-2b(i,1)=a*h^2;endb(n-1,1)=a*h^2-eps-h;D=zeros(n-1);fori=1:n-1D(i,i)=A(i,i);endL=zeros(n-1);fori=1:n-1forj=1:n-1ifi>jL(i,j)=-A(i,j);endendendU=zeros(n-1);fori=1:n-1forj=1:n-1ifi<jU(i,j)=-A(i,j);endendendB=D\(L+U);g=D\b;while1z=(D-L)\U*y+(D-L)\b;ifnorm(z-y,inf)<deltabreak;endy=z;k=k+1;endx=linspace(0,1);truy=(1-a)/(1-exp(-1/eps))*(1-exp(-x./eps))+x.*a;figure;plot(100*x,truy,'g','LineWidth',5);holdon;gridholdon;plot(y,'b')3.SOR:function[y,k]=sor(a,eps,h,delta,w)n=1.0/h;A=ones(n-1);y=zeros(n-1,1);z=zeros(n-1,1);k=0;fori=1:n-1forj=1:n-1A(i,j)=0;endendfori=1:n-1A(i,i)=-(2*eps+h);endfori=1:n-1forj=1:n-1ifi==j+1A(i,j)=eps;endifi==j-1A(i,j)=eps+h;endendendb=zeros(n-1,1);fori=1:n-2b(i,1)=a*h^2;endb(n-1,1)=a*h^2-eps-h;D=zeros(n-1);fori=1:n-1D(i,i)=A(i,i);endL=zeros(n-1);fori=1:n-1forj=1:n-1ifi>jL(i,j)=-A(i,j);endendendU=zeros(n-1);fori=1:n-1forj=1:n-1ifi<jU(i,j)=-A(i,j);endendendB=D\(L+U);g=D\b;Lw=((D-w*L)^-1

温馨提示

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

评论

0/150

提交评论