登录论坛

查看完整版本 : [MATLAB基础] 求教一个初级的问题:线性方程组的误差


xiaohaiyi8080
2009-05-03, 17:52
用几种方法解同一个线性方程组
1)矩阵除法
2)高斯
3)Cramer法则
4)初等变换

其中只有1)和2)的答案是完全一样的
和3)、4)均有一定程度的误差,请问这是为什么?

我是初学者,还麻烦高手介绍一下,最好详细一点,谢谢!!!

xiaohaiyi8080
2009-05-04, 09:56
哪位好心人帮帮我啊??!

laosam280
2009-05-04, 12:42
这四种方法都只能求些小方程组,也就是10阶一下的吧,那还要条件数很小的。求解线性方程组一般都最好采用Gauss-Sedeil迭代法,LU分解法等比较实用的方法,精度很高,收敛也很快。

laosam280
2009-05-04, 12:47
产生的误差的原因就是因为一般的线性方程组的系数矩阵条件数不是很小。这样的话进行高斯消元和矩阵求逆的时候都带来较大的误差,这些误差会积累到结果里。
如果采用列选主元、三角分解法、平方根法、LU分解法、Jacobi迭代法、Gauss-Seidel迭代法,超松弛迭代法等效果好狠多。任何一本数值分析的书上都有介绍这些方法。