实验解线性方程组的基本迭代法实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析实验报告
0 a 12
K a
1,n 1
K a
2,n 1
U
O
M
则有:
第一步: Jacobi 迭代法
a
1n a
2n
M , 则有: A D L U
a
n 1,n
Ax b
A A x D b L U
(D L U)x b Dx (L U)x b x D (L U)x D b
令
J D (L U)
则称 J 为雅克比迭代矩阵
f D b
由此可得雅克比迭代的迭代格式如下:
x (0) , 初始向量
x (k 1)
Jx (k)
f ,k 0,1,2,L
第二步
Gauss-Seidel 迭代法
Ax b
(D L U )x b (D L)x Ux b x (D L) Ux (D L) b A D L U
a 11
a
12 L
a
1n a
11
A
a 21
a 22 L
a
2n
a
22
M MM
MO
a
n1
a n2 L
a
nn
a
11
得到 D
a
22
O
a
nn
由
a 21 0
M
M
O
a
n 1,1 a
n 1,2
L 0
a
nn
a n1
a
n2
L
a n,n
a
21
L
M
M
O
a
n 1,1 a
n 1,2
L
a
n1
a
n2
L
a
n,n 1
a
12
K a
1,n 1 a
1n
0 K
a 2,n 1
a
2n
O
M M
a
n 1,n
10
令
G (D L) U
,则称G
为Gauss-Seidel 迭代矩阵 f (D L) b
由此可得 Gauss-Seidel 迭代的迭代格式如下:
x (0) ,
初始向量
第三步
SOR 迭代法
w0
AD
L
U
1
(
D
1 wL ((1 w)D wU ))
(D 1
wL)
((1 w)D wU )
w
w
w
令M
w
1
(D wL), N
1
((1 w)D wU )则有:A
MN
w
w
Ax b
AM
L
W
N
M (M N )x b Mx Nx b x M
Nx M b
N
M,
令W
f Mb
带入 N 的值可有
L W ((1 w)D wU)
(D wL) 1((1 w)D wU) (D wL)
f 1
b
w 1(D wL) 1b
1
(D wL) w
称 L W 为 SOR 迭代矩阵,由此可得 SOR 迭代的迭代格式如下:
x
(0) ,初始向量
二、算法程序
Jacobi 迭代法的 M 文件: function [y,n]=Jacobi(A,b,x0,eps) %*************************************************
%函数名称 Jacobi 雅克比迭代函数 %参数解释 A
系数矩阵 % b
常数项 %
x0
估计解向量
x
(k 1)
Gx (k) f ,k 0,1,2,L
(k 1)
f,k 0,1,2,L
误差范围
%eps
%返回值
解向量
%y
迭代次数
%n
%函数功能实现线性方程组的Jacobi 迭代求解%*************************************************
n=length(A);
if nargin<3
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;