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

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

P - это матрица перестановок, а S - количество обменов строками, необходимых для преобразования P в единичную матрицу. Как я могу найти S в приведенной выше формуле в MATLAB? Есть ли у него какие-либо предопределенные функции и т. Д.?

1 ответ

Решение

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

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

КСТАТИ: [L, U, P] = lu(A), а также det(A) = det(inv(P))*det(L)*det(U)

Другие вопросы по тегам