病态线性方程组求解(基于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

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值