我有一个矩阵B
,如下所示.我们怎样才能inv(B)
使用MATLAB?
B =[ 1.7511, 0.1891, -1.3523; 1.7511, 0.1891, -1.3523; 1.7511, 0.1891, -1.3523 ];
hbaderts.. 7
如果列是线性独立的,则矩阵是可逆的.这意味着,一个列a
不能在列的函数来表示b
和c
,例如通过a = 2*b+c
.在您的情况下,所有列都是相同的,即a = b = c
它们不是线性独立的,并且您的矩阵是不可逆的.
如果列是线性独立的,则矩阵是可逆的.这意味着,一个列a
不能在列的函数来表示b
和c
,例如通过a = 2*b+c
.在您的情况下,所有列都是相同的,即a = b = c
它们不是线性独立的,并且您的矩阵是不可逆的.
通过打字 inv(B)
.这是反向的确切命令.
请注意,此情况下的反转不存在(请参阅@ hdaberts的答案),这就是您收到以下警告的原因:
警告:Matrix的工作精度非常高.
那已经告诉你MATLAB根本无法计算逆.
你会想要更频繁地使用\
,因为这会选择最佳策略来计算Ax = c类型的问题,其中x是未知的.x=A\c
在这种情况下将是语法.
从以下文档inv
:
Y = inv(X)
返回方阵的倒数X
.如果X
标记错误或几乎是单数,则会打印警告消息.实际上,很少需要形成矩阵的显式逆.
inv
在求解线性方程组时经常出现误操作Ax = b
.解决这个问题的一种方法是x = inv(A)*b
.从执行时间和数值精度的角度来看,更好的方法是使用矩阵除法运算符x = A\b
.这使用高斯消元产生解,而不形成逆.有关详细信息,请参阅mldivide
(\
).