回 帖 发 新 帖 刷新版面

主题:求助:matlab矩阵求逆问题!

请问有些矩阵为什么用matlab求得的逆矩阵和用vc自己编程求出的逆矩阵不同呢。vc程序分别采用了初等矩阵变换法、LU分解法、全选主元法,这三种方法求出的逆矩阵是完全相同的。对于一般的矩阵求出的逆矩阵和matlab的计算结果是一致的,但是当矩阵病态的时候求出的结果差别比较大。请问matlab中是不是对病态矩阵的求逆作了处理,vc程序的求逆怎么来解决呢?请问大家有没有什么好的解决方法?谢谢!

回复列表 (共6个回复)

沙发

inv

板凳

inv()就是求逆阵。
是基本的函数。QQ451544574

3 楼

MATLAB对病态矩阵的求逆结果不是很好,但是在工程领域还可以凑合使用。
VC、FORTRAN程序的求逆结果比较好的。

4 楼

可以用 inv()哈

5 楼

matlab的建议是不管矩阵是不是ill-conditioned,能避免求逆的尽量避免。比如Ax=B的时候用 A\B而不是x=inv(A)×B;前者即使在矩阵接近singular的时候也能得的较准确结果,而且速度快

6 楼

楼主可以试试这个
pinv()
这个是pseudoinverse(就是求A+)
对于A-存在的时候A+=A-
所以可以避免病态的问题了

我来回复

您尚未登录,请登录后再回复。点此登录或注册