Matlab数值分析:Jacobi雅可比迭代法‌

Matlab 数值分析  Jacobi 雅可比迭代法 代码

%* Jacobi迭代法求解线性方程组-----------------------------------------------

%* 输入方程组、预处理-------------------------------------------------------

 A=[5,2,1;-1,4,2;2,-3,10];

 b=[-12;20;3];

 eps=1e-3;                    % 精度要求

 max=1000;                     % 最大迭代次数

 n=length(A);                 % 系数矩阵A的维数

 x=zeros(n,1);                % 初始值设置为0

 x1=zeros(n,1);

 %* 开始迭代求解------------------------------------------------------------

 k=0;

 while 1

     %* 先计算x1(1)

     x1(1)= ( b(1)-A(1,2:n)*x(2:n,1) )/A(1,1);

     %* 再计算x1(i),i=2,3,...,n-1

     for i=2:n-1

         x1(i)=( b(i)-A(i,1:i-1)*x(1:i-1,1)-A(i,i+1:n)*x(i+1:n,1) )/A(i,i);

     end

     %* 最后计算x1(n)

     x1(n)=( b(n)-A(n,1:n-1)*x(1:n-1,1) )/A(n,n);

    

     k=k+1;

    

     %* 计算前后迭代解x1的误差

     if sum( abs(x1-x) )<eps

         fprintf('迭代次数=%d\n',k);

         break;

     end

     %* 当迭代次数超过给定最大迭代次数时,迭代不收敛

     if k>=max

         fprintf('迭代法不收敛\n');

         break;

     end

     %* 未达到给定精度要求则继续迭代

     x=x1;

 end

 %* 输出迭代求解------------------------------------------------------------

 if k<max

     for i=1:n

         fprintf('x[%d]=%f\n',i,x1(i));

     end

 end

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空