找回密码
 注册
Simdroid-非首页
查看: 96|回复: 2

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

[复制链接]
发表于 2013-3-10 11:44:16 | 显示全部楼层 |阅读模式 来自 陕西西安
本帖最后由 wypzf_8 于 2013-3-16 08:06 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2013-3-10 11:48:27 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
病态方程算例一
  1. clear
  2. A=[1.030 0.99030;0.99030 0.95285];%普通病态矩阵
  3. b=[2.4944 2.3988]';
  4. [x, k]=Iter_Ref(A ,b)
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2013-3-10 11:49:25 | 显示全部楼层 来自 陕西西安
病态方程算例二:希伯尔病态矩阵
  1. clear
  2. A=[1 1/2 1/3;1/2 1/3 1/4;1/3 1/4 1/5];%希伯尔病态矩阵
  3. b=[3 23/12 43/30]';
  4. [x, k]=Iter_Ref(A ,b)
复制代码
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-30 10:13 , Processed in 0.029806 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表