码迷,mamicode.com
首页 > 其他好文 > 详细

线性方程组的迭代解法数值结果分析

时间:2014-05-02 17:46:25      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:数据   使用   mat   运行时   c   存储   

       纸上得来终觉浅,绝知此事要躬行。                                

                                           ----(宋)陆游

 

       在使用有限差分法的五点格式求解偏微分方程组时,把问题转化为求解数量级从10直到为10^4个未知数的稀疏矩阵的线性方程组,然后使用了Jocobi迭代,G-S迭代,SOR迭代以及CG迭代求解。

       不管从程序的运行时间还是结果精度来看,SOR迭代和CG迭代较另外两种迭代法占优,而数值结果显示SOR迭代和CG迭代的收敛速度基本相当(后者稍微占优一点儿),这和理论的推导结果吻合地很好。

      从程序使用的内存空间考虑的话,问题变得复杂了。简言之,CG方法依旧胜出,而除了Jacobi迭代法之外的其他迭代方法在处理数量级为10^4个未知数的时候都会遇到out momery的情况。

      综合考虑,在能使用CG方法的情况下(它适用于稀疏矩阵的线性方程组的求解,但是要求线性方程组对应的系数矩阵为对称正定阵,在五点差分格式中,满足该条件且矩阵为稀疏矩阵),首选CG方法。

      PS:使用matlab的一点体会,matlab的最重要的一个特点是向量化计算。在使用G-S迭代法求解数量级为10^4个未知数的方程组(此时,方程组对应的系数矩阵为10^8的数量级)时,如果使用其对应的矩阵迭代格式的话,那么要涉及到稀疏矩阵的求逆,就五点差分格式转化的方程组而言,在G-S迭代中涉及的稀疏矩阵的逆却不是稀疏矩阵,由于要存储的数据太多,导致out momery而使程序无法计算下去。再拿G-S迭代法来看,发现其分量的迭代格式能够大量地节省存储空间,它只需要系数矩阵和常数项的存储信息而不涉及到逆矩阵的计算和存储。不过呢,

线性方程组的迭代解法数值结果分析,布布扣,bubuko.com

线性方程组的迭代解法数值结果分析

标签:数据   使用   mat   运行时   c   存储   

原文地址:http://www.cnblogs.com/liuyc/p/3703693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!