文档介绍:精品文档,仅供学****与交流,如有侵权请联系网站删除
【精品文档】第 1 页
function [x,k,index] = Jacobi(A,b,ep,Nmax )
% 求解线性方程组的Jacobi迭代法,其中
% A --- 方程组的系数矩阵
% b --- 方程组的右端项
% ep --- 精度要求。省缺为1e-5
% Nmax --- 最大迭代次数,省缺为100
% x --- 方程组的解
% k --- 迭代次数
% index=1表示迭代收敛到指定要求;
% index=0表示迭代失败
if nargin <4
Nmax=100;
end %设置默认值
if nargin <3
ep=1e-5;
end %设置默认值
n=length(A); k=0;
x=zeros(n,1); y=zeros(n,1); index=1;
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10 || k==Nmax
index=0; return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<ep
break;
end
x=y; k=k+1;
end
end
function [x,k,index] = Gausseidel(A,b,ep,Nmax )
% 求解线性方程组的Jacobi迭代法,其中
% A --- 方程组的系数矩阵
% b --- 方程组的右端项
% ep --- 精度要求。省缺为1e-5
% Nmax --- 最大迭代次数,省缺为100
% x --- 方程组的解
精品文档,仅供学****与交流,如有侵权请联系网站删除
【精品文档】第 2 页
% k --- 迭代次数
% index=1表示迭代收敛到指定要求;
% index=0表示迭代失败
if nargin <4
Nmax=100;
end %设置默认值
if nargin <3
ep=1e-5;
end %设置默认值
n=length(A); k=0;
x=zeros(n,1);z=zeros(n,1);index=1;
while 1
y=x;
for i=1:n
z(i)=b(i);
for j=1:n
if j~=i%不等于
z(i)=z(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e