您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 雅可比解线性方程组matlab
雅可比迭代使用雅可比迭代法求解线性方程组的步骤步骤1:输入系数矩阵A和方程组右端向量B;步骤2:将矩阵A分解为下三角阵L对角阵D和上三角阵U可分解为(D+L+U)X=Bforo=1:nd(o,o)=a(o,o);u(o,o+1:n)=-a(o,o+1:n);endforp=2:nl(p,1:p-1)=-a(p,1:p-1);end;步骤3:将上式化简为x=B0x+f,其中B0=-D-1(L+U),f=D-1Bfori=1:nb0(i,i+1:n)=u(i,i+1:n)/a(i,i);f(i,:)=b(i,:)/a(i,i);endforp=2:nb0(p,1:p-1)=l(p,1:p-1)/a(p,p);;步骤4:采用迭代公式在允许误差范围e=1e-7内求得解向量xx0=x;x=b0*x+f雅可比迭代法matlab程序:function[x,k]=jacobi(a,b)n=length(a);e=1e-7;m=100;x0=zeros(n,1);x=x0;k=0;d=zeros(n);l=zeros(n);u=zeros(n);b0=zeros(n);f=zeros(n,1);x0=x+2*e;foro=1:nd(o,o)=a(o,o);u(o,o+1:n)=-a(o,o+1:n);endforp=2:nl(p,1:p-1)=-a(p,1:p-1);endfori=1:nb0(i,i+1:n)=u(i,i+1:n)/a(i,i);f(i,:)=b(i,:)/a(i,i);endforp=2:nb0(p,1:p-1)=l(p,1:p-1)/a(p,p);endwhilemax(abs(x0-x))e&kmk=k+1;x0=x;x=b0*x+f;k,disp(x');endifk==merror;end雅可比迭代法matlab运行结果图
本文标题:雅可比解线性方程组matlab
链接地址:https://www.777doc.com/doc-6130346 .html