病态线性代数方程组的求解 理论的分析表明,求解病态的线性代数方程组是困难的
考虑方程组Hx = b的求解,其中H为Hilbert矩阵,nnijhH)(,11jihij,nji,
,2,1, 1
估计Hilbert矩阵2-条件数与阶数的关系; 2
选择问题的不同维数,分别用Gau ss消去法,Jacobi迭代,GS迭代和SOR迭代求解,比较结果; 3
讨论病态问题求解的算法
解: 1、 取Hilbert 矩阵阶数最高分别为n=20 和n=100
采用Hilbert 矩阵的2-条件数作为实验的比较对象,画出的曲线如下图所示:lg(())ncond Hn 从图中可以看出,在n≤13 之前,图像接近直线,在n>13 之后,图像趋于平缓,在一定的范围内上下波动
为了比较图像的线性部分,作出一条直线与已知曲线进行比较
比较直线的关系式为:833
1))(lg(nHcondn,结果下图所示
0246810121416182002468101214161820nlg(cond(Hn))lg(cond(Hn))~n关系图 从图2中可以看出,当n较小时,nHcondn~))(lg(之间近似满足线性关系
当n 继续增大到100 时,nHcondn~))(lg(关系图下图所示: 从图中可以看出,图像的走势符合在n=20 时的猜想,在n 大于一定的值之后,图像趋于平缓,且在一定范围内震荡,同时又有一定上升趋势,但上升速度很慢
2、 选择不同的阶数 n,设方程组的精确解为 xz=(1,1,… ,1)T 进行计算,用四种方法解 x_Guass1、x_Jacobi1、x_GS1、x_SOR1 对比表如下02468101214161820-5051015202530nlg(cond(Hn))lg(cond(Hn))~n关系图01020304050607080901