(Hilbert矩阵)病态线性方程组的求解
理论分析表明,数值求解病态线性方程组很困难。考虑求解如下的线性方程组的求解
Hx = b,期中H是Hilbert矩阵,H?(hij)n?n,hij?1. 估计矩阵的2条件数和阶数的关系 2. 对不同的n,取x?(1,1,1,i,j = 1,2,…,n
i?j?1,1)?n,分别用Gauss消去,Jacobi迭代,Gauss-seidel迭
代,SOR迭代和共轭梯度法求解,比较结果。 3. 结合计算结果,试讨论病态线性方程组的求解。
第1小题:
condition.m%第1小题程序 t1=20;%阶数n=20 x1=1:t1; y1=1:t1; for i=1:t1 H=hilb(i);
y1(i)=log(cond(H)); end
plot(x1,y1);
xlabel('阶数n');
ylabel('2-条件数的对数(log(cond(H))');
title('2-条件数的对数(log(cond(H))与阶数n的关系图');
t2=200;%阶数n=200 x2=1:t2; y2=1:t2; for i=1:t2 H=hilb(i);
y2(i)=log(cond(H)); end
plot(x2,y2); xlabel('阶数n');
ylabel('2-条件数的对数(log(cond(H))');
title('2-条件数的对数(log(cond(H))与阶数n的关系图');
画出Hilbert矩阵2-条件数的对数和阶数的关系
n=200时
n=20时
从图中可以看出,
1)在n小于等于13之前,图像近似直线
log(cond(H))~1.519n-1.833
2)在n大于13之后 ,图像趋于平缓,并在一定范围内上下波动,同时随着n的增加稍有上升的趋势
第2小题:
solve.m%m第2小题主程序 N=4000;