雅可比迭代法的MATLAB程序.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date雅可比迭代法的MATLAB程序雅可比迭代法的MATLAB程序:雅可比迭代法的MATLAB程序:Functionx,k,index=Jacobi(A,b,ep,it-max)% 求线性方程组的雅可比法;% A为方程组的系数矩阵;% b为方程组的右端项;% x为方程组的解;% ep为精度要求,缺省值为le-5;% it_max为最大迭代次数,缺省值为100;% k为迭代次数;% index 为指标变量,index=0表示计算失败,index=1表示计算成功;if nargin<4 it_max=100;endif nargin<3ep=le-5;endn=length(A);k=0;x=zeros(n,1);y=zeros(n,1);index=1;while k<=it_max for i=1:n if abs (A(i,i)<le-10 index=0; return;endy(i)=(b(i)-A(i,1:n)*x(1:n)+A(i,i)*x(i)/A(i,i);endif norm(y-x,inf)<epbreak; endk=k+1;x=y;end高斯-赛德尔迭代的MATLAB程序Functionx,k,index=Gau-seidel(A,b,ep,it-max)% 求线性方程组的高斯-赛德尔迭代法;% A为方程组的系数矩阵;% b为方程组的右端项;% x为方程组的解;% ep为精度要求,缺省值为le-5;% it_max为最大迭代次数,缺省值为100;% k为迭代次数;% index 为指标变量,index=0表示计算失败,index=1表示计算成功;if nargin<4 it_max=100;endif nargin<3ep=le-5;endn=length(A);k=0;x=zeros(n,1);y=zeros(n,1);index=1;while k<=it_max for i=1:n if abs (A(i,i)<le-10 index=0; return;Endif i=1y(i)=(b(i)-A(i,i+1:n)*x(i+1:n)/A(i,i);elseif i=n y(i)=(b(i)-A(i,1:i-1)*y(1:i-1)/A(i,i);else y(i)=(b(i)-A(i,1:i-1)*y(1:i-1)-A(i,i+1:n)*x(i+1:n)/A(i,i); endendif norm(y-x,inf)<epbreak; endk=k+1;x=y;end-