給你一個正確的程式,你自己參考一下吧!
function [x,k]=Jacobimethod(A,b,x0,N,emg)
% A:線性方程組左端矩陣
% b:線性方程組右端向量
% x0:迭代初值
% N:迭代次數上界,若迭代次數大於n,則迭代失敗
% emg:精度指標
% k:迭代次數
% x:用迭代法求得的線性方程組的近似解
n=length(A);
x1=zeros(n,1);x2=zeros(n,1);
x1=x0; k=0;
r=max(abs(b-A*x1));
while r>emg
for i=1:n
sum=0;
for j=1:n
if i~=j
sum=sum+A(i,j)*x1(j);
end
x2(i)=(b(i)-sum)/A(i,i);
r=max(abs(x2-x1));
x1=x2;
k=k+1;
if k>N
disp("迭代失敗,返回");
return;
祝朋友好運!
給你一個正確的程式,你自己參考一下吧!
function [x,k]=Jacobimethod(A,b,x0,N,emg)
% A:線性方程組左端矩陣
% b:線性方程組右端向量
% x0:迭代初值
% N:迭代次數上界,若迭代次數大於n,則迭代失敗
% emg:精度指標
% k:迭代次數
% x:用迭代法求得的線性方程組的近似解
n=length(A);
x1=zeros(n,1);x2=zeros(n,1);
x1=x0; k=0;
r=max(abs(b-A*x1));
while r>emg
for i=1:n
sum=0;
for j=1:n
if i~=j
sum=sum+A(i,j)*x1(j);
end
end
x2(i)=(b(i)-sum)/A(i,i);
end
r=max(abs(x2-x1));
x1=x2;
k=k+1;
if k>N
disp("迭代失敗,返回");
return;
end
end
祝朋友好運!