Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
LU-факторизация выражает m ×n матричный A
можно следующим образом: P*A = L*U
. Здесь L
является m ×m нижняя треугольная матрица, которая содержит 1 с на основной диагонали, U
является m ×n матричная верхняя треугольная матрица, и P
является матрицей перестановок. Чтобы вычислить разложение LU матрицы, используйте функцию linalg::factorLU
. Например, вычислите разложение LU следующей квадратной матрицы:
A := matrix([[0, 0, 1], [1, 2, 3], [0, 1, 2]]): [L, U, p] := linalg::factorLU(A)
Вместо того, чтобы возвратить матрицу перестановок P
, MuPAD® возвращает список p
с числами, соответствующими обменам строки в матричном A
. Для n ×n матрица, список p
представляет следующую матрицу перестановок с индексами i
и j
в пределах от 1 к n
:
.
Используя это выражение, восстановите матрицу перестановок P
из списка p
:
P := matrix(3, 3): for i from 1 to 3 do P[i, p[i]] := 1 end_for: P
Более эффективно вычислите результат применения матрицы перестановок к A
, не восстанавливая саму матрицу перестановок:
PA := matrix(3, 3): for i from 1 to 3 do PA[i, 1..3] := A[p[i], 1..3] end_for: PA
Продуктом нижнего треугольного матричного L
и верхней треугольной матрицы U
является исходный матричный A
со строками, которыми обмениваются согласно матрице перестановок P
:
testeq(PA = L*U)
Теперь, вычислите разложение LU для 3 ×2 матричных B
:
B := matrix([[1, 2], [3, 4], [5, 6]]): [L, U, p] := linalg::factorLU(B)
Матрица перестановок для этой LU-факторизации показывает, что порядок строк не изменяется. Поэтому продукт нижнего треугольного матричного L
и верхней треугольной матрицы U
дает исходный матричный A
:
testeq(B = L*U)