LU-разложение
разреженных матриц
Функция luinc
осуществляет неполное LU-разложение и возвращает нижнюю треугольную матрицу,
верхнюю треугольную матрицу и матрицу перестановок для разреженных матриц [
Благодаря
LAPACK в MATLAB 6 появилась отсутствующая в прежних версиях возможность использовать
команду lu для точного LU-разложения разреженных матриц. — Примеч. ред.
].
Используется в следующих формах:
-
luincCX,
'0') — возвращает неполное LU-разложение уровня 0 квадратной разреженной
матрицы. Треугольные факторы (множители) имеют такую же разреженность (т.
е. график разреженности, см. spy), как и матрица перестановок квадратной
матрицы X, и их произведение имеет ту же разреженность, что и матрица перестановок
X. Функция luinc(X, '0') .возвращает нижнюю треугольную часть нижнего фактора
(множителя) и верхний треугольный фактор в одной и той же результирующей
матрице. Вся информация о матрице перестановок теряется, но зато число ненулевых
элементов результирующей матрицы равно числу ненулевых элементов матрицы
X с возможностью исключения некоторых нулей из-за сокращения;
-
[L,U]
= luincCX. 'О'), где X — матрица размером nхn, возвращает нижнюю треугольную
матрицу L и верхнюю треугольную матрицу U. Разреженности матриц L, U и X
не сравнимы, но сумма числа ненулевых элементов в матрицах L и U поддерживается
равной nnz(X)+n с возможностью исключения некоторых нулей в L и U из-за
сокращения;
-
[L,U.P]=luinc(X,
'0') — возвращает нижнюю треугольную матрицу L, верхнюю треугольную матрицу
U и матрицу перестановок Р. Матрица L имеет такую же разреженную структуру,
как нижняя треугольная часть перестановленной матрицы X — spones(L)=spones(tril(P*X)),
с возможными исключениями единиц на диагонали матрицы L, где Р*Х может быть
равно 0;
-
luinc(X,droptol)
— возвращает неполное LU-разложение любой разреженной матрицы, используя
порог droptol. Параметр droptol должен быть неотрицательным числом;
-
luinc(X,droptol)
— возвращает приближение к полному LU-разложению, полученному с помощью
функции lu(Х). При меньших значениях droptol аппроксимация улучшается, пока
значение droptol не станет равным 0. В этом случае имеет место полное LU-
разложение;
-
luinc(X,options)
— использует структуру с четырьмя переменными, которые могут быть использованы
в любой из комбинаций: droptol, milu, udiag, thresh. Дополнительные поля
игнорируются. Если miliKL, функция luinc возвращает модифицированное неполное
LU-разложение. Если udiag=l, то все нули на диагонали верхней треугольной
части заменяются на локальную ошибку droptol;
-
luincCX.options)
— то же самое, что и luinc(X,droptol), если options содержит
только
параметр droptol; О [L.U] = luincCX,options) — возвращает перестановку треугольной
матрицы L и
верхнюю
треугольную матрицу U. Результат L*U аппроксимирует X;
-
[L.U.P]
= luinc(X.options) — возвращает нижнюю треугольную матрицу L, верхнюю треугольную
матрицу U и матрицу перестановок Р. Ненулевые входные элементы матрицы U
удовлетворяют выражению abs(U(i. j))>=droptol* norm((X:.j)) с возможным
исключением диагональных входов, которые были сохранены, несмотря на неудовлетворение
критерию;
-
[L.U.P]
= luincCX,options) — то же самое, что и [L.U.P] = 1uinc(X,dropto1), если
options содержит только параметр droptol.
Содержание раздела