主题:求助:matlab矩阵求逆问题!
zyz2006
[专家分:0] 发布于 2006-08-24 11:21:00
请问有些矩阵为什么用matlab求得的逆矩阵和用vc自己编程求出的逆矩阵不同呢。vc程序分别采用了初等矩阵变换法、LU分解法、全选主元法,这三种方法求出的逆矩阵是完全相同的。对于一般的矩阵求出的逆矩阵和matlab的计算结果是一致的,但是当矩阵病态的时候求出的结果差别比较大。请问matlab中是不是对病态矩阵的求逆作了处理,vc程序的求逆怎么来解决呢?请问大家有没有什么好的解决方法?谢谢!
回复列表 (共6个回复)
板凳
engle06 [专家分:0] 发布于 2006-11-06 14:03:00
inv()就是求逆阵。
是基本的函数。QQ451544574
3 楼
taobao [专家分:40] 发布于 2006-11-09 15:44:00
MATLAB对病态矩阵的求逆结果不是很好,但是在工程领域还可以凑合使用。
VC、FORTRAN程序的求逆结果比较好的。
4 楼
chming0420 [专家分:0] 发布于 2007-11-17 13:56:00
可以用 inv()哈
5 楼
ricckma [专家分:370] 发布于 2007-11-17 14:45:00
matlab的建议是不管矩阵是不是ill-conditioned,能避免求逆的尽量避免。比如Ax=B的时候用 A\B而不是x=inv(A)×B;前者即使在矩阵接近singular的时候也能得的较准确结果,而且速度快
6 楼
Viperbite [专家分:0] 发布于 2008-03-16 04:28:00
楼主可以试试这个
pinv()
这个是pseudoinverse(就是求A+)
对于A-存在的时候A+=A-
所以可以避免病态的问题了
我来回复