Matlab求解线性方程组(三)共轭梯度法和最速下降法的比较

一,共轭梯度法

对于课本计算实例P113:用共轭梯度法求解线性方程组Ax=b,其中
在这里插入图片描述
矩阵A的阶数n分别取为100,200,400,指出计算结果是否可靠。

共轭梯度法的求解结果如下:
(1)n=100时
迭代50次后满足精度要求 ,其误差曲线如下图所示。
在这里插入图片描述

(2) n=200时
经过100次迭代后满足精度要求,其误差曲线如下图所示。
在这里插入图片描述

(2) n=400时
经过200次迭代后满足精度要求,其误差曲线如下图所示。

在这里插入图片描述
(1)结果可靠性
n=100,迭代50次,误差迅速减小,达到1.0710-12,最终结果x=(1 1 … 1)T,带入方程,符合题意。
n=200,迭代100次,误差迅速减小,达到6.23
10-12,最终结果x=(1 1 … 1)T,带入方程,符合题意。
n=400,迭代200次,误差迅速减小,达到2.14*10-11,最终结果x=(1 1 … 1)T,带入方程,符合题意。
(2)优点
适用于结构简单,一致性高,阶数较大的对称矩阵运算。
(3)局限性
此算法只适用于A对角线元素一致的稀疏对称阵,对角线元素不一致的不适用。同样,生成的b向量适用于个别元素非零,其他元素为零的情况。

二,最速下降法

(1)n=100时
在精度为1*10-6时,迭代了19465次才满足精度要求 。

在这里插入图片描述

(2)n=200时
在精度为1*10-6时,迭代了68688次才满足精度要求。
在这里插入图片描述

(3)n=400时
在精度为1*10-6时,迭代了239671次才满足精度要求 。
在这里插入图片描述

由以上结果可知,在满足同等精度的情况下下,最速下降法的迭代次数远高于共轭梯度法。

三,二者的比较

以n=200为例,作出共轭梯度法与最速下降法的误差随着迭代次数变化的曲线,如下图所示。在这里插入图片描述
分析可知,共轭梯度法在迭代次数达到n的时候,其误差会快速下降,而最速下降法误差减小的趋势比较平缓,说明其收敛速度较慢。

扫描二维码关注公众号,回复: 14984504 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_43517528/article/details/123510123
今日推荐