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

下载本文档

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

文档简介

1、课题三线性方程组的迭代法对课题二所列目的和意义的线性方程组,试分别选用Jacobi对课题二所列目的和意义的线性方程组,试分别选用Jacobi迭代法,Gauss-Seidol迭代法和SOR方法计算其解。1、设线性方程组020602哑02060210060002IE*06超0301050606050703141吨1702.13080100000005000100020003030109070302170206*020503003420209020012超406300|0503HQ3505*6.06:02*8IH|H21|10 x*=(1,-1,0,1,2,0,3,1,-1,2)T2、设对称正定阵系

2、数阵线方程组TOC o 1-5 h z104020002040000吟0,202超01030200:;:1401*0506106品0哑0106.03:3:_?3:0201224*01f11I510403IBH041101H.2.?00205IB011402”5:I00000003IBH0219|.71.5|8x*=(1,-1,0,2,1,-1,0,2)T3、三对角形线性方程组TOC o 1-5 h z000000000*I10,000!0o000o10,000!0o000o,0004000000,,3314.。.善04000052.004.000;.2;000400:,7!34:0000401

3、,11000004:,000000491.10X*=(2,1,-3,0,1,-2,3,0,1,-DT二、要求1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,女在=10-3,10-4,10-5由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR方法时,选取松弛因子3=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。三、目的和意义1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,

4、终止步骤llx(k+1)-x(k)|(予给的迭代次数),对迭代法敛散性的意义;4、体会初始解x(0),松弛因子的选取,对计算结果的影响。四、迭代计算1、雅可比迭代法在进行雅可比迭代之前,我们应该先判断迭代是否能够收敛,这里我们使用雅可比迭代法收敛的充分必要条件(即,迭代矩阵的谱半径小于等于1)。1、判断方程组一使用雅可比迭代法是否收敛在matlab软件中编写程序:D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);B=D(L+U);t=eig(B)r=max(abs(t)可求出方程组一的雅可比迭代矩阵的特征值分别为:1.6604+3.8389i;1.6604-3

5、.8389i;-3.3952;-1.3286+1.5704i;-1.3286-1.5704i;-0.4754;-0.1912;0.9785;0.9568;1.4628显然,其谱半径大于1,则雅可比迭代法不收敛,故不可用雅可比迭代法进行迭代求解。可用消去法求解,编写matlab高斯列主元消去法的程序如下:functionX=Gauss_pivot(A,b)n=length(b);X=zeros(n,1);c=zeros(1,n);d1=0fori=1:n-1max=abs(A(i,i);m=i;forj=i+1:nifmax=emgfori=1:nsum=0;forj=1:nifi=jsum=s

6、um+A(i,j)*x1(j);endendx2(i)=(b(i)-sum)/A(i,i);endt=abs(x2-x1);r=max(t);x1=x2;k=k+1;ifkNdisp(迭代失败,返回);return;endkend调用雅克比求解线性方程组的程序,取初值x0=0;0;0;0;0;0;0;0;0;0,不同精度下求得解为:=10-3:则x2=2.0000;1.0000;-2.9997;-0.0006;1.0008;-2.0015;3.0010;-0.0016;1.0007;-1.0007,迭代次数k二10=10-4:贝Ux2=2.0000;1.0000;-2.9999;-0.0002

7、;1.0002;-2.0003;3.0002;-0.0003;1.0001;-1.0001,迭代次数k=12=10-5:则x2=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.0000;0.0000;1.0000;-1.0000,迭代次数k=15由方程组三雅克比的迭代过程可以看出,精度越高,所需迭代次数就越多,迭代速度也就越慢,但是其解也越来越接近与真值。当=10-5时,x2=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.0000;0.0000;1.0000;-1.0000,这与真值基本是相同的。2、高斯

8、-赛德尔迭代法同样,在进行高斯-赛德尔迭代之前,我们应该先判断迭代是否能够收敛,这里我们使用高斯-赛德尔迭代法收敛的充分必要条件(即,迭代矩阵的谱半径小于等于1)。1、判断方程组一使用高斯-赛德尔迭代法是否收敛在matlab软件中编写程序:D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);B=(D-L)U;t=eig(B)r=max(abs(t)可求出方程组一的高斯-赛德尔迭代矩阵的特征值分别为:0;17.1222;-0.8196+4.1041i;-0.8196-4.1041i;0.9839;0.8639;-0.0220+0.1529i;-0.0220-0.1

9、529i;0.4784;0.0000显然,其谱半径为r=17.1222,大于1,则高斯-赛德尔迭代法不收敛,故不可用高斯-赛德尔迭代法进行迭代求解。2、判断方程组二使用高斯-赛德尔迭代法是否收敛与方程组一相似,求出方程组二的高斯-赛德尔迭代矩阵的特征值为:0;0.9947;0.5849+0.0782i;0.5849-0.0782i;0.3075+0.2159i;0.3075-0.2159i;0.0291;-0.0000其谱半径r=0.9947,小于1,则方程组二使用高斯-赛德尔迭代法仍然收敛,故可用高斯-赛德尔迭代法求解。编写matlab高斯-赛德尔迭代法程序如下:functionX=gsei

10、d(A,b,x0,delta,max1)N=length(b);fork=1:max1forj=1:Nifj=1X(1)=(b(1)-A(1,2:N)*x0(2:N)/A(1,1);elseifj=NX(N)=(b(N)-A(N,1:N-1)*(X(1:N-1)/A(N,N);elseX(j)=(b(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*x0(j+1:N)/A(j,j);endendt=abs(X-x0);r=max(t);x0=X;if(rdelta)breakendkend调用高斯-赛德尔求解线性方程组的程序,取初值x0=0;0;0;0;0;0;0;0;0;0

11、,不同精度下求得解为:=10-3:贝Ux2=1.3126;-1.3619;0.0775;1.8468;1.0320;-1.0685;0.0209;1.9882,迭代次数k=7=10-4:Ux2=1.1604;-1.1886;0.0377;1.9166;1.0133;-1.0342;0.0082;1.9953,迭代次数k=132=10-5:Ux2=1.0160;-1.0188;0.0038;1.9917;1.0013;-1.0034;0.0008;1.9995,迭代次数k=569由方程组二的高斯-赛德尔迭代过程可以看出,精度越高,所需迭代次数就越多,迭代速度也就越慢,但是其解也越来越接近与真值。

12、当=10-5时,x2=1.0160;-1.0188;0.0038;1.9917;1.0013;-1.0034;0.0008;1.9995,这与真值x*=(1,-1,0,2,1,-1,0,2基本是相同的。3、判断方程组三使用高斯-赛德尔迭代法是否收敛与方程组一、方程组二相似,求出方程组二的高斯-赛德尔迭代矩阵的特征值为:0;0.2302;0.1769;0.1072;0.0431;0.0051;-0.0000+0.0000i;-0.0000-0.0000i;0.0000;-0.0000其谱半径为0.2302,小于1,则方程组三使用高斯-赛德尔迭代法收敛,故可用高斯-赛德尔迭代法求解。调用高斯-赛德

13、尔求解线性方程组的程序,取初值x0=0;0;0;0;0;0;0;0;0;0,不同精度下求得解为:=10-3:则x2=2.0016;0.999;-3.0021;-0.0028;0.9986;-2.0003;3.00010.0001;1.0000;-1.0000,迭代次数k=4=10-4:则x2=1.9999;0.9998;-3.0002;-0.0001;1.0000;-2.0000;3.00000.0000;1.0000;-1.0000,迭代次数k=6=10-5:贝Ux2=2.0000;1.0000;-3.0000;-0.0000;1.0000;-2.0000;3.00000.0000;1.00

14、00;-1.0000,迭代次数k=8当=10-5时,x2=2.0000;1.0000;-3.0000;-0.0000;1.0000;-2.0000;3.00000.0000;1.0000;-1.0000,这与真值x*=(2,1,-3,0,1,-2,3,0,1,-1)是相同的。3、超松弛迭代法1、判断方程组一使用超松弛迭代法是否收敛在matlab软件中编写程序:w=1.3D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);B=(D-w*L)(1-w)*D+w*U);t=eig(B)r=max(abs(t)可求出方程组一的超松弛迭代矩阵的谱半径为r=164.0633

15、,大于1,则超松弛迭代法不收敛,故不可用超松弛迭代法进行迭代求解。2、判断方程组二使用超松弛迭代法是否收敛与方程组一相似,取w=1.3求出方程组二的超松弛迭代矩阵的特征值为:0.9902;0.4505+0.3101i;0.4505-0.3101i;0.1697+0.4168i;0.1697-0.4168i;0.0452;-0.0972+0.1215i;-0.0972-0.1215i其谱半径r=0.9902,小于1,则方程组二使用超松弛迭代法收敛,故可用超松弛迭代法求解。编写超松弛迭代法的matlab程序如下:functionx,k=SOR(A,b,w,N,r)x0=zeros(1,length

16、(b);n,n=size(A);k=1;whilek=Nx(1)=(b(1)-A(1,2:n)*x0(2:n)/A(1,1);fori=2:nx(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n)/A(i,i);endifmax(abs(x-x0)=rbreak;endk=k+1;x0=x;endifk=N+1disp(超过最大迭代次数,求解失败!);end调用超松弛求解线性方程组的程序,取初值x0=0;0;0;0;0;0;0;0;0;0,取=10-5,分别取=0.8,0.9,1,1.1,1.2,1.3,1.4,1.5

17、,1.6,1.7,1.8,1.9,2时,可得到不同的解:=0.8:J则x=1.0208;-1.0245;0.0049;1.9892;1.0017;-1.0044;0.0011;1.9994,迭代次数k=10=0.9:则x=1.0182;-1.0214;0.0043;1.9906;1.0015;-1.0039;0.0009;1.9995迭代次数k=604=1:则x=1.0160;-1.0188;0.0038;1.9917;1.0013;-1.0034;0.0008;1.9995迭代次数k=570=1.1:J则x=1.0144;-1.0169;0.0034;1.9926;1.0012;-1.003

18、1;0.0007;1.9996迭代次数k=538=1.2:J则x=1.0129;-1.0151;0.0030;1.9933;1.0011;-1.0027;0.0007;1.9996迭代次数k=510=1.3:J则x=1.0116;-1.0136;0.0027;1.9940;1.0010;-1.0025;0.0006;1.9997迭代次数k=484=1.4:J则x=1.0106;-1.0124;0.0025;1.9945;1.0009;-1.0023;0.0005;1.9997迭代次数k=459=1.5:J则x=1.0097;-1.0113;0.0023;1.9950;1.0008;-1.002

19、1;0.0005;1.9997迭代次数k=437=1.6:J则x=1.0089;-1.0104;0.0021;1.9954;1.0007;-1.0019;0.0004;1.9997迭代次数k=416=1.7:J则x=1.0082;-1.0096;0.0019;1.9958;1.0007;-1.0018;0.0004;1.9998迭代次数k=396=1.8:J则x=1.0076;-1.0088;0.0018;1.9961;1.0006;-1.0016;0.0004;1.9998迭代次数k=378=1.9:J则x=1.0070;-1.0081;0.0016;1.9964;1.0006;-1.001

20、5;0.0003;1.9998迭代次数k=361=2:则超过最大迭代次数,求解失败!当=1.9时,x=1.0070;-1.0081;0.0016;1.9964;1.0006;-1.0015;0.0003;1.9998,这与真值x*=(1,-1,0,2,1,-1,0,2)是基本相同的。而当=2,则超过最大迭代次数,求解失败!3、判断方程组三使用超松弛迭代法是否收敛与方程组一、方程二相似,取w=1.3求出方程组二的超松弛迭代矩阵的特征值为:-0.1055+0.2808i;-0.1055-0.2808i;-0.2957+0.0505i;-0.2957-0.0505i;-0.2635+0.1433i;

21、-0.2635-0.1433i;-0.1505+0.2595i;-0.1505-0.2595i;-0.2094+0.2148i;-0.2094-0.2148i其谱半径r=0.3000,小于1,则方程组三使用超松弛迭代法收敛,故可用超松弛迭代法求解。调用超松弛求解线性方程组的程序,取初值x0=0;0;0;0;0;0;0;0;0;0,取=10-5,分别取=0.8,0.9,1,1.1,1.2时,可得到不同的解:=0.8:则x=2.0000;1.0000;-3.0000;-0.0001;0.9999;-2.0000;3.0000;-0.0000;1.0000;-1.0000,迭代次数k=12=0.9:

22、则x=2.0000;1.0000;-3.0000;-0.0000;1.0000;-2.0000;3.0000;-0.0000;1.0000;-1.0000迭代次数k=10=1:则x=2.0000;1.0000;-3.0000;-0.0000;1.0000;-2.0000;3.0000;0.0000;1.0000;-1.0000迭代次数k=9=1.1:则x=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.0000;-0.0000;1.0000;-1.0000迭代次数k=9=1.2:则x=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.0000;-0.0000;1.0000;-1.0000迭代次数k二11=1.3:则x=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.0000;-0.0000;1.0000;-1.0000迭代次数k=13当=1.1时,x=2.0000;1.0000;-3.0000;0.0000;1.0000;-2.0000;3.000

温馨提示

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

评论

0/150

提交评论