病态线性方程组求解(基于MATLAB)

A=[25 -300 1050 -1400 630;
-300 4800 -18900 26880 -12600;
1050 -18900 79380 -117600 56700;
-1400 26880 -117600 179200 -88200;
630 -12600 56700 -88200 44100;];
b=[5 3 -1 0 -2]';

矩阵A的条件数:

cond(A) = 4.7661e+05;

呈现病态性。

预处理的共轭梯度法:

当 AX=B 为病态方程组时,共轭梯度法收敛很慢。预处理技术是在用共轭梯度法求解之前对系数矩阵做一些变换后再求解。

x0=[0 0 0 0 0]';
M=pascal(5)% 预处理矩阵
[x,flag,re,it]=pcg(A,b,1.e-8,1000,M,M,x0)

%flag=0 表示在指定迭代次数之内按要求精度收敛
%re 表示相对误差
%it 表示迭代次数

 x =

    5.7667
    2.9167
    1.9310
    1.4333
    1.1349

flag =

     0

re =

   4.6704e-11

it =

    10

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读