首页 > 其他 > 详细

雅克比迭代法介绍以及matlab代码实现-线性方程组求解

时间:2021-06-08 23:02:34      阅读:28      评论:0      收藏:0      [点我收藏+]

1).前沿   

 谈到雅克比迭代法,首先就谈下迭代法的基本原理

     设线性方程组

                                      Ax = b

 系数矩阵A为n阶非奇异矩阵(|A|≠0,且右端常数项向量b≠0,则将上式改写为

                                    x = Bx +f

采用迭代的思想:    x^{k+1} = B*x^{k+1} +f   k=0,1,2...,n

其基本思想是将A拆分成如下

                                       A = M-N

此时 B=M^(-1)*N = M^(-1) = I - M^(-1)*A   ,f = M^(-1)*b .(注:I 是单位矩阵)

          X^(K+1) = I -  M^(-1)*A + M^(-1)*b 

2).雅克比迭代法

     就上拆分的思想,将n阶线性方程组  Ax =b拆分成(A = (aij)nxn ,且aij≠0)

                                     A = D + L +U                

其中

    技术分享图片技术分享图片技术分享图片

则根据aij≠0,则D^(-1) 存在,则将线性方程组 AX=B 改为

                                               x=-D^(-1)*(L+U)*x + D^(-1)*b

由此得到迭代公式

                                              x^(k+1)=-D^(-1)*(L+U)*x^(k+1) + D^(-1)*b

证明:标注为粉红的公式

                               由 Ax = b ,将A=D+L+U代如得,

                                (D+L+U)x = b

                                  Dx+(L+U)x = b

                                  Dx = -(L+U)x + b

                                  x = D^(-1)*(L+U)*x + D^(-1)*b   

证毕。

 

将   x=-D^(-1)*(L+U)*x + D^(-1)*b 展开

技术分享图片技术分享图片技术分享图片  

 技术分享图片技术分享图片技术分享图片

技术分享图片技术分享图片 技术分享图片...

最终结果为:

                         技术分享图片

 

3).Matlab 雅克比迭代程序

具体程序如下所示:

clear; 
A=input(‘请输入线性方程组的系数矩阵:‘); 
b=input(‘请输入线性方程组的常向量:‘); 
x1=input(‘请输入解向量的初始值:‘); 
n=numel(b); 
 
e_max=1e6;       %%前一次和后一次之差
while e_max>=1e-6 
    e_max=0; 
    for i=1:n 
        s=0;           %%初始化变量
        for j=1:n 
            if j~=i 

                s=s+A(i,j)*x1(j); 
            end 
        end 
        x2(i) = (b(i)-s)/A(i,i); 
        e = abs(x2(i)-x1(i));     
        if e > e_max  
            e_max = e; 
        end 
    end 
    x1=x2      %%不带分号,观察每步迭代结果 
end 

 

测试矩阵

A = [10 -1 -2;-1 10 -2;-1 -1 5];

b= [72 83 42];

迭代初值x(0) =  [0 0 0];

调试结果

技术分享图片技术分享图片

 

  

雅克比迭代法介绍以及matlab代码实现-线性方程组求解

原文:https://www.cnblogs.com/sophiaechoz/p/14864597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!