作业帮 > 综合 > 作业

在MATLAB中用求解高斯—塞德尔迭代法线性方程组

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 02:20:33
在MATLAB中用求解高斯—塞德尔迭代法线性方程组
function x=Gauss_Seidel(A,b,x0,tol)
if (nargin==2)
x0=ones(size(b));
tol=1e-6;
elseif (nargin==3)
tol=1e-6;
else
sprintf('USAGE:Gauss_Seidel(A,b,x0,tol)')
end
D=diag(diag(A));
U=triu(A,1);
L=tril(A,-1);
G=-(D+L)\U;
d1=(D+L)\b;
x=G*x0+d1;
n=1;
while norm(x-x0)>=tol
x0=x;
x=G*x0+d1;
n=n+1;
end
n