Учитывая 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)