Проверка того, какие строки переключились с учетом исходной и измененной матрицы в Matlab

Я пытался обдумать это некоторое время и надеялся получить некоторое представление. Предположим, у вас есть матрица A, затем вы меняли строки, пока не получили матрицу B;

A = [1 3 1;
3 2 1;
2 3 1;];

B = [3 2 1;
1 3 1;
2 3 1;];

invA =

    0.0000   -1.0000    1.0000
   -1.0000   -1.0000    2.0000
    3.0000    5.0000   -7.0000


invB =

   -1.0000    0.0000    1.0000
   -1.0000   -1.0000    2.0000
    5.0000    3.0000   -7.0000

Как бы я задокументировал эти переключатели строк? В конечном итоге я пытаюсь изменить инверсию B, чтобы она соответствовала инверсии A. Я пришел к выводу, что при переключении 2 строк (то есть между строками 1 и 2) конечный результат инверсии будет идентичен, за исключением переключения < strong>столбцы (1 и 2) обратного B.


person user3509716    schedule 17.08.2014    source источник


Ответы (1)


Это довольно простой вопрос по алгебре.
Вы можете записать свою матрицу B как произведение матрицы перестановок. P и A:

B = PA;

(в вашем примере: P = [0 1 0;1 0 0;0 0 1];).
Теперь вы можете инвертировать B:

inv( B ) = inv( PA ) 

Обратное произведение

         = inv(A) * inv(P)

Поскольку матрица P является матрицей перестановки: inv(P) = P.'. Таким образом

         = inv(A) * P.'

То есть inv(B) = inv(A) * P.' означает, что вы применяете перестановку P к столбцам inv(A).

Обратите внимание, что перестановка P может представлять собой более одного переключения между строками, более того, перестановки могут быть умножены для учета повторяющихся переключений строк.


Важный комментарий: я использую inv в этом ответе для обозначения обратной матрицы. Однако при запуске Matlab и численном инвертировании матриц не рекомендуется явно использовать функцию inv.

person Shai    schedule 17.08.2014
comment
о, перестановки интересные. Это то, с чем я не знаком. Как вы придумали свою перестановку в первой части? И является ли конечный результат, когда вы изменяете обратную матрицу A исходной матрицей? - person user3509716; 17.08.2014
comment
@user3509716, пожалуйста, прочтите связанную вики-страницу о матрицах перестановок, это даст вам основы и предоставит указатели для дальнейшего чтения. inv(A) в моем ответе является инверсией исходной матрицы A. - person Shai; 17.08.2014