急寻用matlab编写的解决雅各比迭代法的程序

来源:百度知道 编辑:UC知道 时间:2024/07/03 10:24:38
要一个matlab的程序,是解决雅各比问题的

function X=jacobi(A,b,P,delta,max1)
% A是n维非奇异阵
% B是n维向量
% P是初值
% delta是误差界
% X为所求的方程组AX=B的近似解
N=length(b);
for k=1:max1
for j=1:N
X(j)=(b(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j);
end
err=abs(norm(X'-P));
P=X';
if (err<delta)
break
end
end
X=X';k,err

>> A=[4,1,-1;1,-5,-1;2,-1,-6]
>> b=[13;-8;-2]
>> P=[0;0;0]
>> X=jacobi(A,b,P,10^(-4),20)

k =

9

err =

2.5713e-005

X =

3.0000
2.0000
1.0000