如何获取每列中具有相同元素的特殊类型Matrix的inv

时间:2015-12-22 11:16:50

标签: matlab

我有一个矩阵B,如下所示。我们如何使用MATLAB获得inv(B)

B =[ 1.7511, 0.1891, -1.3523;
     1.7511, 0.1891, -1.3523;
     1.7511, 0.1891, -1.3523 ];

2 个答案:

答案 0 :(得分:7)

如果列是线性独立的,则矩阵为invertible。这意味着列b无法在列ca = 2*b+c的函数中表示,例如按a = b = c。在您的情况下,所有列都是相同的,即500000 (Cr),因此它们不是线性独立的,并且您的矩阵不可逆

答案 1 :(得分:5)

输入d。这是反向的确切命令。

请注意,此情况下的反转不存在(请参阅@hdaberts's answer),这就是您收到以下警告的原因:

  

警告:Matrix的工作精度是单数。

那已经告诉你MATLAB根本无法计算逆。

您可能希望更频繁地使用inv(B),因为这会选择最佳策略来计算Ax = c类型的问题,其中x是未知的。在这种情况下,\将是语法。

来自documentation on inv

  

x=A\c返回方阵Y = inv(X)的倒数。如果X严重缩放或几乎是单数,则会打印一条警告消息。

     

实际上,很少需要形成矩阵的显式逆。在求解线性方程组X时,会频繁误用inv。解决此问题的一种方法是Ax = b。从执行时间和数值精度的角度来看,更好的方法是使用矩阵除法运算符x = inv(A)*b。这使用高斯消元产生解,而不形成逆。有关详细信息,请参阅mldivide (\)