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