inv(A)*B vs A\B - 为什么在 MatLab 中会出现这种奇怪的行为?
inv(A)*B vs A\B - Why this weird behavior in MatLab?
让我们创建两个随机矩阵,
A = randn(2)
B = randn(2)
inv(A)*B
和 A\B
给出相同的结果
inv(A)*B
A\B
ans =
0.6175 -2.1988
-0.7522 5.0343
ans =
0.6175 -2.1988
-0.7522 5.0343
除非我乘以某个因子。这是为什么?
.5*A\B
.5*inv(A)*B
ans =
1.2349 -4.3977
-1.5045 10.0685
ans =
0.3087 -1.0994
-0.3761 2.5171
这很烦人,因为 MatLab 总是让我使用 A\B
而不是 inv(A)*B
,我花了很多年才弄清楚为什么我的代码不起作用。
当A
为非奇异矩阵时,则inv(A) * B = A \ B
.
您的计算如下:.5 * A\B = (0.5 * A) \ B
vs .5* inv(A) * B = 0.5 * (A\B)
。因此,它会给你不平等的结果。
让我们创建两个随机矩阵,
A = randn(2)
B = randn(2)
inv(A)*B
和 A\B
给出相同的结果
inv(A)*B
A\B
ans =
0.6175 -2.1988
-0.7522 5.0343
ans =
0.6175 -2.1988
-0.7522 5.0343
除非我乘以某个因子。这是为什么?
.5*A\B
.5*inv(A)*B
ans =
1.2349 -4.3977
-1.5045 10.0685
ans =
0.3087 -1.0994
-0.3761 2.5171
这很烦人,因为 MatLab 总是让我使用 A\B
而不是 inv(A)*B
,我花了很多年才弄清楚为什么我的代码不起作用。
当A
为非奇异矩阵时,则inv(A) * B = A \ B
.
您的计算如下:.5 * A\B = (0.5 * A) \ B
vs .5* inv(A) * B = 0.5 * (A\B)
。因此,它会给你不平等的结果。