文档库 最新最全的文档下载
当前位置:文档库 › 实验6雅可比高斯赛德尔迭代

实验6雅可比高斯赛德尔迭代

分别用雅克比迭代法和高斯-赛德尔迭代法计算下列方程组,均取相同的初值x0=[1 1 1]’,观察其计算结果,并分析其收敛性。
function [y,m]=jcb2(A,b,x0,n,tol)
D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1)
B=inv(D)*(L+U);f=inv(D)*b;
x=x0;
if max(abs(eig(B)))>=1
disp('雅克比迭代公式不收敛');
end
for k=1:n
x(:,k+1)=B*x(:,k)+f;
if norm(A*x(:,k+1)-b)break
end
end
y=x(:,k+1);m=k;
return
function [y,m]=jcb3(A,b,x0,n,tol)
D=diag(diag(A));L=-tril(A,-1);
U=-triu(A,1);
B=(D-L)\U;f=(D-L)\b
x=x0;
if max(abs(eig(B)))>=1
disp('高斯-赛德尔迭代公式不收敛');
end
for k=1:n
x(:,k+1)=B*x(:,k)+f;
if norm(A*x(:,k+1)-b)break
end
end
y=x(:,k+1);m=k;
return
x0=[1 1 1]';
n=200;
tol=1e-6;
A1=[1 -9 -10;-9 1 5;8 7 1];
b1=[1 0 4]';
A2=[5 -1 -3; -1 2 4; -3 4 15];
b2=[-1 0 4]';
A3=[10 4 5;4 10 7;5 7 10];
b3=[-1 0 4]';
jcb2(A1,b1,x0,n,tol)
jcb3(A1,b1,x0,n,tol)
jcb2(A2,b2,x0,n,tol)
jcb3(A2,b2,x0,n,tol)
jcb2(A3,b3,x0,n,tol)
jcb3(A3,b3,x0,n,tol)
ans=
U =

0 9 10
0 0 -5
0 0 0

雅克比迭代公式不收敛

ans =

1.0e+275 *

-3.0926
3.1794
-0.3000
f =

1
9
-67

高斯-赛德尔迭代公式不收敛

ans =

NaN
NaN
NaN
U =

0 1 3
0 0 -4
0 0 0


ans =

-0.0985
-1.1637
0.5575


f =

-0.2000
-0.1000
0.2533


ans =

-0.0984
-1.1639
0.5574


U =

0 -4 -5
0 0 -7
0 0 0

雅克比迭代公式不收敛

ans =

1.0e+006 *

2.3148
2.6977
2.8280


f =

-0.1000
0.0400
0.4220


ans =

-0.3658
-0.5132
0.9421

相关文档
相关文档 最新文档