wypzf_8 发表于 2013-3-10 11:44:16

病态方程的处理方法一:迭代改善法(问题已解决)

本帖最后由 wypzf_8 于 2013-3-16 08:06 编辑

       在数值算法中,经常遇到病态方程。本人在编程中遇到了此问题,经过整理现已经解决此问题。供大家交流。下面的一些直观的现象可作为判别病态矩阵的参考:(1)在主元消去法的过程中出现小主元,则系数矩阵有可能是病态矩阵,但病态矩阵未必一定有这种小主元;(2)若解方程组时出现很大的解,则系数矩阵 有可能是病态矩阵,但病态矩阵也可能有一个小解;(3)从矩阵本身来看,若元素间数量级相差很大且无一定规律;或矩阵的某些行(列)近似线性相关,即矩阵的行列式接近于0,这样的矩阵就有可能是病态的。                                                                         当然,这些现象只能帮助我们做初步的判断,并且很多病态矩阵也不一定会出现这些现象。所以,最可靠的判别方法是求出矩阵的条件数。处理病态方程有许多种方法,改善的迭代法(见附件),并附上本人自己编织的改善的迭代法代码,供大家交流。原理介绍见附件
m文件 为i迭代的改善法m文件,主函数,该函数调用了LUX子函数LUX子函数m文件

wypzf_8 发表于 2013-3-10 11:48:27

病态方程算例一
clear
A=;%普通病态矩阵
b=';
=Iter_Ref(A ,b)

wypzf_8 发表于 2013-3-10 11:49:25

病态方程算例二:希伯尔病态矩阵
clear
A=;%希伯尔病态矩阵
b=';
=Iter_Ref(A ,b)
页: [1]
查看完整版本: 病态方程的处理方法一:迭代改善法(问题已解决)