Учитывая LUP-разложение матрицы, как найти определитель в MATLAB?


Я хочу вычислить определитель матрицы из ее декомпозиции LUP в MATLAB. Определитель можно найти по Формуле:

Введите описание изображения здесь

P-матрица перестановок , А S-число обменов строк, необходимых для преобразования P в матрицу тождества. Как я могу найти S В приведенной выше формуле в MATLAB? Имеет ли он какие-либо предопределенные функции и т. д.?

1 2

1 ответ:

Если вы интерпретируете P как матрицу смежности, а вектор cycles содержит длину всех циклов в графе, описанном P, то S=sum(cycles) - length(cycles).

Теперь осталось только найти длину всех циклов, для которых есть несколько функций на файлообменнике, например Эта.

Кстати: [L, U, P] = lu(A), и det(A) = det(inv(P))*det(L)*det(U)