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

下载本文档

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

文档简介

1、数值分析实验报告 姓名 忘川 学号 1205025106 系另I 数学系 班级 12级 主讲教师 指导教师 实验日期 2022/6/25 专业 信息与计算科学专业 课程名称 数值分析 同组实验者 无 一、实验名称: 实验八、解线性方程组的根本迭代法实验 二、实验目的: 1 .深入理解Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法; 2 .通过对Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的程序设计,提升程序设计的水平; 3 .应用编写的程序解决具体问题,掌握三种根本迭代法的使用,通过结果的分析了解每一种迭代法的特点. 二、实验内容及要求: 1 .根据Mat

2、lab语百特点,描述Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法. 2 .编写Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的M文件. .、-2020. 3 .给定AR为五对角矩阵 11 3 2 4 1c11 3 224 11cli3 4 224 1111 3 4224 111 一一3一 422 11& 3 42 1选取不同的初始向量x及右端面项向量b,给定迭代误差要求,分别用编写的Jacobi迭代法和 Gauss-Seidel迭代法程序求解,观察得到的序列是否收敛?假设收敛,通过迭代次数分析计算结果并得出你的结论. 2用编写的SOR迭代法程序,对于1所选

3、取的初始向量x及右端面项向量b进行求解,松驰系数 3 取132的/、同值,在xkXk1105时停止迭代,通过迭代次数分析计算结果并得出你的结论. 四、实验步骤或记录 一、算法描述 1/22 由 ,00a12Ka1,n1a1n 用a12L即a a2100K&,n1a2n a21a22La2na22 AMMO0MM MMMMO an1,1an1,2L00an1,n an1an2Lann垢 an1an2Lan,n100 0 a11 a210 a O 斗1,1an1,2L0 ann an1an2Lan,n10 0312Ka,n1Wn 0Ka2,n1a2n UOMM,那么有:ADLU 0an1,n 0

4、那么有: 第Jacobi迭代法 Axb (DLU)xbDx(LU)xbxD(LU)xDb ADLU 令JD(LU)那么称J为雅克比迭代矩阵fDb 由此可得雅克比迭代的迭代格式如下: x(0),初始向量 (k1).(k) xJxf,k0,1,2,L 第二步 Gauss-Seidel迭代法 2/22Axb ADLU (DLU)xb(DL)xUxb x(DL)Ux(DL)b 令G(DL)U,那么称G为Gauss-Seidel迭代矩阵f(DL)b 由此可得Gauss-Seidel迭代的迭代格式如下: x(0),初始向量 x(k1)Gx(k)f,k0,1,2,L 第三步 SOR迭代法 w0 111 AD

5、LU(DwL(1w)DwU)(DwL)-(1w)DwU) www 11 (DwL),N-(1w)DwU)那么有:AMNww (MN)xbMxNxbxMNxMb 人LWMN皿 令带入M,N的值可有 fMb .(1w)DwU)1, LW(DwL)(1w)DwU) (DwL) fbw1(DwL)1b 1(DwL)w 称LW为SOR迭代矩阵,由此可得SOR迭代的迭代格式如下: x(0),初始向量 x(k1)Lwx(k)f,k0,1,2,L 二、算法程序 Jacobi迭代法的M文件: functiony,n=Jacobi(A,b,x0,eps) %* 3/22Axb AMN %参数解释 A 系数矩阵 %

6、 b 常数项 % x0 仙U解向重 % eps 误差范围 %返回值 % y 解向量 % n 迭代次数 %函数功能 实现线性方程组的Jacobi迭代求解 %* n=length(A); ifnargin=1 disp(谱半径大于等于1,迭代不收敛,无法进行 return; end n=1; fori=1:1:n ifsum(A(i,i)=n)=n error(输入的A矩阵的对角线元素不能为0); return; end end y=B*x0+f; whilenorm(y-x0)=eps&n100 x0=y; y=B*x0+f; n=n+1; end Gauss-Seidel迭代法的M文件和 fu

7、nctiony,n=GaussSeidel(A,b,x0,eps) %* %函数名称GaussSeidel高斯赛德尔迭代函数 %参数解释A系数矩阵 %b常数项 %x0估计解向量 ); % eps 误差范围 %返回值 % y 解向量 % n 迭代次数 %函数功能 实现线性方程组的Jacobi迭代求解 %* n=length(A); ifnargin=1 disp(谱半径大于等于1,迭代不收敛,无法进行,); return; end 6/22 n=1; 5/22 fori=1:1:n ifsum(A(i,i)=n)=n error(输入的A矩阵的对角线元素不能为0); return; end en

8、d y=B*x0+f; whilenorm(y-x0)=eps&n100 x0=y; y=B*x0+f; n=n+1; end SOR迭代法的M文件 functiony,n=SOR(A,b,x0,w,eps) 0Hm* %函数名称 SOR 松弛迭代函数 %参数解释 A 系数矩阵 % w 松弛因子 % b 常数项 % x0 仙 U 解向重 % eps 误差范围 %返回值 % y 解向量 7/22 迭代次数 %函数功能实现线性方程组的Jacobi迭代求解 %* n=length(A); ifnargin=eps&nb=ones(20,1); x0=zeros(20,1); eps=0.005; 1

9、0/22 y,n=Jacobi(A,b,x0,eps) y= 0.4813 0.5729 0.6321 0.6513 0.6600 0.6632 0.6646 0.6651 0.6653 0.6653 0.6653 0.6653 0.6651 0.6646 0.6632 0.6600 0.6513 0.6321 0.5729 0.4813 11/22 n= 9 在CommandWindow中输入: Gauss-Seidel迭代法求解: 在CommandWindow中输入: A=zeros(20,20); fori=1:1:20 A(i,i)=3; end fori=1:1:20 forj=1:

10、1:20 ifabs(i-j)=1 A(i,j)=-1/2; end end end fori=1:1:20 forj=1:1:20 ifabs(i-j)=2 A(i,j)=-1/4; end end end 12/22 b=ones(20,1); x0=zeros(20,1); eps=0.005; y,n=GaussSeidel(A,b,x0,eps) y= 0.4814 0.5732 0.6325 0.6518 0.6606 0.6640 0.6654 0.6660 0.6662 0.6663 0.6663 0.6663 0.6661 0.6656 0.6642 0.6609 0.652

11、1 0.6328 0.5734 13/22 0.4816 n= 7 第二次给定初始向量为20行一列的0 右端面项向量b=20行一列的1.001 迭代误差要求0.005 Jacobi迭代法求解: 在CommandWindow中输入 A=zeros(20,20); fori=1:1:20 A(i,i)=3; end fori=1:1:20 forj=1:1:20 ifabs(i-j)=1 A(i,j)=-1/2; end end end b=1.001*ones(20,1); 14/22 x0=zeros(20,1); eps=0.005; y,n=Jacobi(A,b,x0,eps) y= 0.

12、4146 0.4856 0.4978 0.4999 0.5002 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5002 0.4999 0.4978 0.4856 0.4146 15/22n= 7 Gauss-Seidel迭代法求解: 在CommandWindow中输入 A=zeros(20,20); fori=1:1:20 A(i,i)=3; end fori=1:1:20 forj=1:1:20 ifabs(i-j)=1 A(i,j)=-1/2; end end end b=1.001*one

13、s(20,1); x0=zeros(20,1); eps=0.005; y,n=GaussSeidel(A,b,x0,eps) y= 16/22 0.4145 0.4856 0.4978 0.4999 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5003 0.5000 0.4980 0.4858 0.4146 n=5 观察计算结果得到的序列可以看出其是收敛,在较少的迭代次数下即可的到满足误差要求的解. 17/22 (2)第一次给定初始向量为20行一列的0, 右端面项向量b=20行一

14、列的1 迭代误差要求0.00005 松弛因子为1.5 在CommandWindow中输入 A=zeros(20,20); fori=1:1:20 A(i,i)=3; end fori=1:1:20 forj=1:1:20 ifabs(i-j)=1 A(i,j)=-1/2; end end end fori=1:1:20 forj=1:1:20 ifabs(i-j)=2 A(i,j)=-1/4; end end end b=ones(20,1); 18/22 x0=zeros(20,1); w=1.5; eps=1e-5; y,n=SOR(A,b,x0,w,eps) y= 1.0e+012* -

15、0.5082 -0.9690 -1.5400 -2.1738 -2.8767 -3.6356 -4.4375 -5.2635 -6.0901 -6.8885 -7.6243 -8.2578 -8.7437 -9.0319 -9.0675 -8.7940 -8.1452 19/22 -7.0831 -5.4598 -3.5651 n= 100 第二次给定初始向量为20行一列的0, 右端面项向量b=20行一列的1 迭代误差要求0.00005 松弛因子为1.2 在CommandWindow中输入 A=zeros(20,20); fori=1:1:20 A(i,i)=3; end fori=1:1:20 forj=1:1:20 ifabs(i-j)=1 A(i,j)=-1/2; end end end b=ones(20,1); 20/22x0=zeros(20,1); w=1.2; eps=1e-5; y,n=SOR(A,b,x0,w,eps) y= 0.2792 0.3246 0.3319 0.3331 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0

温馨提示

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

评论

0/150

提交评论