实验八、解线性方程组的基本迭代法实验.docVIP

  • 167
  • 0
  • 约7.46千字
  • 约 22页
  • 2017-08-18 发布于重庆
  • 举报

实验八、解线性方程组的基本迭代法实验.doc

实验八、解线性方程组的基本迭代法实验.doc

数值分析实验报告 姓 名 忘川 学 号 1205025106 系 别 数学系 班级 12级 主讲教师 指导教师 实验日期 2014/6/25 专业 信息与计算科学专业 课程名称 数值分析 同组实验者 无 一、实验名称: 实验八、解线性方程组的基本迭代法实验 实验目的: 1.深入理解Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法; 2.通过对Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的程序设计,提高程序设计的能力; 3.应用编写的程序解决具体问题,掌握三种基本迭代法的使用,通过结果的分析了解每一种迭代法的特点。1.根据Matlab语言特点,描述Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法。 2.编写Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的M文件。 3.给定为五对角矩阵 (1)选取不同的初始向量及右端面项向量b,给定迭代误差要求,分别用编写的Jacobi迭代法和Gauss-Seidel迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。 (2)用编写的SOR迭代法程序,对于(1)所选取的初始向量及右端面项向量b进行求解,松驰系数ω取1ω2的不同值,在时停止迭代,通过迭代次数分析计算结果并得出你的结论。 由 得到 ,则有: 则有: 第一步:Jacobi迭代法 令 则称 为雅克比迭代矩阵 由此可得雅克比迭代的迭代格式如下: 第二步 Gauss-Seidel迭代法 令,则称为Gauss-Seidel迭代矩阵 由此可得Gauss-Seidel迭代的迭代格式如下: 第三步 SOR迭代法 令,则有: 令带入的值可有 称 为SOR迭代矩阵,由此可得SOR迭代的迭代格式如下: 二、算法程序 Jacobi迭代法的M文件: function [y,n]=Jacobi(A,b,x0,eps) %************************************************* %函数名称 Jacobi 雅克比迭代函数 %参数解释 A 系数矩阵 % b 常数项 % x0 估计解向量 % eps 误差范围 %返回值 % y 解向量 % n 迭代次数 %函数功能 实现线性方程组的Jacobi迭代求解 %************************************************* n=length(A); if nargin3 error(输入错误,最少要输入三个参数); return; end if nargin==3 eps=1e-6; end D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); M=D; N=L+U; B=M\N; f=M\b; if max(abs(eig(B)))=1 disp(谱半径大于等于1,迭代不收敛,无法进行); return; end n=1; for i=1:1:n if sum(A(i,i)~=n)~=n error(输入的A矩阵的对角线元素不能为0); return; end end y=B*x0+f; while norm(y-x0)=epsn100 x0=y; y=B*x0+f; n=n+1; end Gauss-Seidel迭代法的M文件和 function [y,n]=GaussSeidel(A,b,x0,eps) %************************************************* %函数名称 GaussSeidel 高斯赛德尔迭代函数 %参数解释 A 系数矩阵 % b 常数项 % x0 估计解向量 % eps 误差范围 %返回值 % y 解向量 % n 迭代次数 %函数功能 实现线性方程组的Jacobi迭代求解 %************************************************* n=leng

文档评论(0)

1亿VIP精品文档

相关文档