概述
用MATLAB编程实现,形成m函数文件。输入A,b矩阵,无返回值,解得x向量直接显示在命令行窗口,同时绘制出x向量的收敛曲线。
A
=
[
2
−
1
1
1
1
1
1
1
−
2
]
b
=
[
1
1
1
]
A=\begin{bmatrix} 2&-1&1\\1&1&1\\1&1&-2\end{bmatrix} b=\begin{bmatrix} 1\\1\\1\end{bmatrix}
A=⎣⎡211−11111−2⎦⎤b=⎣⎡111⎦⎤
高斯塞德尔方法
代码
function [] = gaussseidel(A,b)
%高斯塞德尔迭代法
G=-(diag(diag(A))+tril(A,-1))\triu(A,1);
R=max(abs(eig(G)));
if(R>=1)
disp('Gauss-Seidel is not work');
else
disp('Gauss-Seidel is going well');
disp('x vector:')
d1=(diag(diag(A))+tril(A,-1))\b;
x=zeros(size(b));
for k=1:100
x(:,k+1)=G*x(:,k)+d1;
if(max(abs(x(:,k+1)-x(:,k)))=1)
disp('Jacobi is not work');
else
disp('Jacobi is going well');
disp('x vector:')
d1=diag(diag(A))\b;
x=zeros(size(b));
for k=1:100
x(:,k+1)=B*x(:,k)+d1;
if(max(abs(x(:,k+1)-x(:,k))) |