inv (A) * B vs A \ B - Почему такое странное поведение в MatLab? - PullRequest
0 голосов
/ 26 мая 2020

Давайте создадим две случайные матрицы,

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, и мне потребовались годы, чтобы понять, почему мой код не работает.

1 Ответ

4 голосов
/ 26 мая 2020

Когда A равно невырожденная матрица , тогда inv(A) * B = A \ B.

Ваш расчет выглядит следующим образом: .5 * A\B = (0.5 * A) \ B vs .5* inv(A) * B = 0.5 * (A\B). Таким образом, вы получите неравный результат.

...