И другие программы этой серии
Пример:
>> S = delsq(numgrid(\'C\',4)) S =
(1,1) 4
(2.1) -1
(1.2) -1 (2,2) 4
(3.2) -1
(2.3) -1 (3,3) 4
>> R0 = cholinc(S,\'0\') R0 =
(1.1) 2.0000
(1.2) -0.5000
(2.2) 1.9365
(2.3) -0.5164 (3,3) 1.9322
5.3.3. LU-разложение разреженных матриц
Функция luinc осуществляет неполное LU-разложение и возвращает нижнюю треугольную матрицу, верхнюю треугольную матрицу и матрицу перестановок для разреженных матриц. Используется в следующих формах:
• luinc(X,\'0\') возвращает неполное LU-разложение уровня 0 квадратной разреженной матрицы. Треугольные факторы (множители) имеют такую же разреженность (то есть график разреженности, см. spy), как и матрица перестановок квадратной матрицы X, и их произведение имеет ту же разреженность, что и матрица перестановок X. Функция luinc(X,\'0\') возвращает нижнюю треугольную часть нижнего фактора (множителя) и
254
Типы данных – массивы специального вида
Многомерные массивы
255
верхний треугольный фактор в одной и той же результирующей матрице. Вся информация о матрице перестановок теряется, но зато число ненулевых элементов результирующей матрицы равно числу ненулевых элементов матрицы X с возможностью исключения некоторых нулей из-за сокращения.
• [L,U] = luinc(X,\'0\'), где X – матрица размером n×n, возвращает нижнюю треугольную матрицу L и верхнюю треугольную матрицу U. Разреженности матриц L, U и X не сравнимы, но сумма числа ненулевых элементов в матрицах L и U поддерживается равной nnz(X)+n, с возможностью исключения некоторых нулей в L и U из-за сокращения.
• [L,U,P]=luinc(X,\'0\') возвращает нижнюю треугольную матрицу L, верхнюю треугольную матрицу U и матрицу перестановок P. Матрица L имеет такую же разреженную структуру, как нижняя треугольная часть перестановленной матрицы X – spones(L)=spones(tril(P*X)) с возможными исключениями единиц на диагонали матрицы L, где P*X может быть равно 0.
• luinc(X,droptol) возвращает неполное LU-разложение любой разреженной матрицы, используя порог droptol.
Начало в части 1