矩阵求逆:MATLAB矩阵求逆(矩阵元素是复数)

 2021-07-01 2:12    77  

  你可以把矩阵和代码贴出来。
如果你能确保程序没写错,那么你的矩阵很有可能是非常病态的。
当然还有可能是matlab的bug。一般来讲matlab本身是不会有问题的,不过我听说有一个版本的matlab(好像是2009b)解方程组的时候有bug。
  

看起来是没什么毛病,矩阵也是良态的。
F =
0。1790 - 1。6485i 0。2474 0。5375i 0。0906 0。2807i
-0。
  
  1856 - 0。4421i -1。6807 -39。2235i 0。8009 0。8343i
0。1803 0。3884i 0。4263 2。0594i 2。2267 - 5。3067i
然后呢矩阵求逆?哪里有问题?
另外,F=Yff-Yfn*inv(Ynn)*Ynf 写成 F=Yff-Yfn*(YnnYnf) 比较好,如果求逆是中间过程尽量避免inv。

A的伴随矩阵的逆矩阵是否等于A的逆矩阵的伴随矩阵呢

是的矩阵求逆。

证明:若 A 可逆矩阵求逆,根据“A的逆矩阵”与“A的伴随矩阵”关系式A^-1=A*/│A│,

得伴随矩阵为 A* =│A│A^-1-------------------(1)

于是 (A*)^-1 =(│A│A^-1)^-1=A/│A│---------------------(2)

类似的,套用伴随矩阵的公式(1),可得A^-1 的伴随矩阵是

(A^-1)* =│A^-1│(A^-1)^-1=(1/│A│)·A=A/│A│-----------(3)

由(2)(3)两式可知 (A*)^-1=(A^-1)* 。

如何用matlab求矩阵的广义逆矩?

一般来讲Moore-Penrose广义逆关于分量不连续,所以不要指望符号计算永远能解决问题,因为有时候参量不同的时候矩阵的秩也会不同

如果你能事先知道矩阵是行满秩或者列满秩的,比如你的例子,那么就可以直接用

A^+ = A'(AA')^{-1} 或 A^+ = (A'A)^{-1}A'

如果这些都没有保障,那么你得自己去实现满秩分解A=BC,然后A^+=C^+ B^+,这里满秩分解可以用Gauss消去法实现,很简单的循环,比QR分解或SVD容易多了,自己写一下就行,当然,在消去过程中前面提到的需要根据参量讨论的问题仍然无法避免,取决于你的具体问题

本文标签:何用矩阵

原文链接:https://www.xgfox.com/jsyd/180.html

本文版权:如无特别标注,本站文章均为原创。