第三章 解线性方程组的迭代法
- 格式:ppt
- 大小:286.50 KB
- 文档页数:33


解线性方程组的迭代法
1.rs里查森迭代法求线性方程组Ax=b的解
function[x,n]=rs(A,b,x0,eps,M)
if(nargin==3)
eps=1.0e-6;%eps表示迭代精度
M=10000;%M表示迭代步数的限制值
elseif(nargin==4)
M=10000;
end
I=eye(size(A));
n=0;
x=x0;
tol=1;
%迭代过程
while(tol>eps)
x=(I-A)*x0+b;
n=n+1;%n为最终求出解时的迭代步数
tol=norm(x-x0);
x0=x;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end
2.crs里查森参数迭代法求线性方程组Ax=b的解
function[x,n]=crs(A,b,x0,w,eps,M)
if(nargin==4)
eps=1.0e-6;%eps表示迭代精度
M=10000;%M表示迭代步数的限制值
elseif(nargin==5)
M=10000;
end
I=eye(size(A));
n=0;
x=x0;
tol=1;
%迭代过程
while(tol>eps)
x=(I-w*A)*x0+w*b;
n=n+1;%n为最终求出解时的迭代步数
tol=norm(x-x0);
x0=x;if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end
3.grs里查森迭代法求线性方程组Ax=b的解
function[x,n]=grs(A,b,x0,W,eps,M)
if(nargin==4)
eps=1.0e-6;%eps表示迭代精度
M=10000;%M表示迭代步数的限制值
elseif(nargin==5)
M=10000;
end
I=eye(size(A));
n=0;
x=x0;
tol=1;%前后两次迭代结果误差
%迭代过程
while(tol>eps)
x=(I-W*A)*x0+W*b;%迭代公式
数值分析复习资料
一、重点公式
第一章 非线性方程和方程组的数值解法
1)二分法的基本原理,误差:~12kbax
2)迭代法收敛阶:1lim0ipiic,若1p则要求01c
3)单点迭代收敛定理:
定理一:若当,xab时,(),xab且'()1xl,,xab,则迭代格式收敛于唯一的根;
定理二:设()x满足:①,xab时,(),xab,
②121212,,, ()(),01xxabxxlxxl有
则对任意初值0,xab迭代收敛,且:
110111iiiiixxxllxxxl
定理三:设()x在的邻域内具有连续的一阶导数,且'()1,则迭代格式具有局部收敛性;
定理四:假设()x在根的邻域内充分可导,则迭代格式1()iixx是P阶收敛的()()()0,1,,1,()0jPjP(Taylor展开证明)
4)Newton迭代法:1'()()iiiifxxxfx,平方收敛
5)Newton迭代法收敛定理:
设()fx在有根区间,ab上有二阶导数,且满足:
①:()()0fafb;
②:'()0,,fxxab;
③:'',,fxab不变号 ④:初值0,xab使得''()()0fxfx;
则Newton迭代法收敛于根。
6)多点迭代法:1111111()()()()()()()()()iiiiiiiiiiiiiiifxfxfxxxxxfxfxfxfxfxfxxx
收敛阶:152P
7)Newton迭代法求重根(收敛仍为线性收敛),对Newton法进行修改
①:已知根的重数r,1'()()iiiifxxxrfx(平方收敛)
②:未知根的重数:1''()(),()()()iiiiuxfxxxuxuxfx,为()fx的重根,则为()ux的单根。
南昌航空大学
数学与信息科学学院
实 验 报 告
课程名称: 计 算 方 法
实验名称: 解线性方程组的迭代法
实验类型: 验证性√ 综合性□ 设计性□
实验室名称: D 504
班级学号: 08061115
学生姓名: 杨朝峰
任课教师(教师签名):
成 绩:
实验日期: 2009-11-06
南昌航空大学数学与信息科学学院实验报告
1 一、实验目的
在科学研究和工程技术中有许多问题可归结为求解线性代数方程组。关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。迭代法是通过构造适当的迭代公式,经过有限次的迭代运算来求得方程组近似解的方法。通过本实验的学习,应掌握Jacobi迭代法和G-S迭代法的基本思想和原理,了解它们各自的优缺点及适用范围。
二、实验题目
分别用Jacobi迭代法和G-S迭代法求解方程组
111122111221321xxx
要求:(1) 求解过程中,应输出系数矩阵详细的变化过程;
(2) 通过迭代过程,说明这两种方法是否收敛。
三、实验原理(包括所使用方法的原理、公式和程序框图)
1.基本原理:迭代法是一种逐次逼近法。雅克比(Jacobi)迭代法在求解线性方程组时,先定义一个初始向量x(0)=(0,0,0,…),其中初始向量的零的个数与所求的方程组的未知数的个数相等。
再依次代入x=Bx+f,因此可以构造出一个向量序列{x(k)},如果该得到的向量序列{x(k)}是收敛的,则就可得到解。而高斯-塞德尔(G-S)迭代法与雅克比(Jacobi)迭代法相似,只是高斯-塞德尔(G-S)迭代法每迭代一次只需计算一次矩阵与向量的乘法。
数值分析--第三章--迭代法迭代⼀般⽅程:
本⽂实例⽅程组:
⼀.jacobi迭代法
从第i个⽅程组解出xi。 线性⽅程组Ax=b,先给定⼀组x的初始值,如[0,0,0],第⼀次迭代,⽤x2=0,x3=0带⼊第⼀个式⼦得到x1的第⼀次迭代结果,⽤x1=0,x3=0,带⼊第⼆个式⼦得到x2的第⼀次迭代结果,⽤x1=0,x2=0带⼊第三个式⼦得到x3的第⼀次迭代结果。得到第⼀次的x后,重复第⼀次的运算。
转化成⼀般的形式:(其中L是A的下三⾓部分,D是A的对⾓元素部分,U 是上三⾓部分)
得到迭代公式:
其中的矩阵B和向量f如何求得呢?
其实,矩阵B的计算也很简单,就是每⾏的元素/该⾏上的对⾓元素
⼆.Gauss-Seidel迭代法【收敛速度更快】
这个可以和jacobi法对⽐进⾏理解,我们以第⼆次迭代为例(这⾥的第⼀次迭代结果都⽤⼀样的,懒得去换)
从上表对⽐结果可以看出,Jacobi⽅法的第⼆次迭代的时候,都是从第⼀次迭代结果中,获取输⼊值。
上⼀次迭代结果[2.5,3.0,3.0],将这个结果带⼊上⾯式⼦1,得到x1=2.88,;将[2.5,3.0,3.0]替换成[2.88,3.0,3.0]带⼊第⼆个式⼦的运算,这⾥得到x2=1.95,所以把[2.88,3.0,3.0]替换成[2.88,1.95,3.0]输⼊第三个式⼦计算X3=1.0.这就完成了这⼀次的迭代,得到迭代结果[2.88,1.95,1.0],基于这个结果,开始下⼀次迭代。
特点:jacobi迭代法,需要存储,上⼀次的迭代结果,也要存储这⼀次的迭代结果,所以需要两组存储单元。
⽽Gauss-Seidel迭代法,每⼀次迭代得到的每⼀个式⼦得到的值,替换上⼀次迭代结果中的值即可。所以只需要⼀组存储单元。
转化成⼀般式:注意:第⼆个式⼦中的是k+1次迭代的第⼀个式⼦的值,不是第k次迭代得值。
计算过程同jacobi迭代法的类似
三.逐次超松弛法SOR法
上⾯仅仅通过实例说明,Jacobi和Seidel迭代的运算过程。并没有构造其⼀般的计算公式。Gauss-Seidel迭代法的⼀般公式: