function [x,n] = gauss_seidel_iteration(A,b,epsilon)
%{
高斯-赛德尔迭代法
param A:系数矩阵
param b:方程右端向量
param epsilon:误差限值
return x:解向量
return n:迭代次数
%}
rows=size(A,1);
x=zeros(rows,1);
n=1;
while true
if norm(A*x-b)<epsilon
break
end
temp=zeros(rows,1);
for ii=1:rows
temp(ii)=b(ii);
for jj=1:ii-1
temp(ii)=temp(ii)-A(ii,jj)*temp(jj);%使用已经更新的值
end
for jj=ii+1:rows
temp(ii)=temp(ii)-A(ii,jj)*x(jj);%使用还未更新的值
end
temp(ii)=temp(ii)/A(ii,ii);
end
x=temp;
n=n+1;
end
end
高斯-赛德尔迭代法
于 2023-10-25 15:28:34 首次发布