lu
Функция вычисления LU-разложения матрицы.
Синтаксис
B = lu(A);
B = lu(A, p);
B = lu(A, L, U);
B = lu(A, L, U, Pv);
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
| A | array2 | Входная квадратная матрица |
| p | intarray | Выходной целочисленный массив перестановок |
| L | array2 | Выходная нижнетреугольная матрица с единичной диагональю |
| U | array2 | Выходная верхнетреугольная матрица |
| Pv | array2 | Выходная квадратная матрица перестановок |
Описание
lu(A) – функция
вычисляет LU-разложение матрицы A, результат - смешанная форма
представления матриц L и U в следующем виде:
lu(A,p)
– функция вычисляет LU-разложение матрицы A, результат - смешанная форма
представления матриц L и U и массив перестановок
p. Данная компактная смешанная форма функции является основой для решения
СЛАУ. Рекомендуется использовать данный вариант разложения.
lu(A, L,
U) – функция вычисляет LU-разложение матрицы A,
результат - матрица L с учетом перестановок и матрица U
такие, что A = L*U
lu(A, L, U, P)
– функция вычисляет LU-разложение матрицы A, результат - матрица
L без учета перестановок, матрица U и матрица
перестановок P такие, что A = P*L*U
Входная матрица
A может задаваться:
- как переменная типа матрица, определенная ранее:
B = lu(A); - как матрица, состоящая из переменных, определенных ранее:
B = lu([[a1, a2],[a3, a4]]); - как постоянный массив:
B = lu([[1, 2],[5, 7]]);
Результат
| Имя | Тип данных | Описание |
|---|---|---|
| B | array2 | Выходная матрица, содержащая смешанное представление L и
U |
Пример 1
const A = [[10, -7, 0],
[-3, 2, 6],
[5, -1, 5]];
var p: intarray;
// Компактная смешанная форма
B = lu(A, p);
A с выводом
L и U в компактной смешанной форме, в виде матрицы
B, и выводом массива перестановок p. В результате
выполнения скрипта переменным будут присвоены
значения:B = [[ 10, -7, 0];
[ 0.5, 2.5, 5];
[-0.3, -0.04, 6.2]]
p = [0, 2, 2]Пример 2
const A = [[10, -7, 0],
[-3, 2, 6],
[5, -1, 5]];
var L: array2, U: array2;
{Форма с раздельным выводом матриц L,U, при этом перестановка
автоматически применена к матрице L}
B = lu(A,L,U);
//Проверка разложения
D = L*U;
В скрипте примера производится LU-разложение матрицы A с раздельным
выводом матриц L и U, при этом к матрице
L уже применена матрица перестановок. В результате выполнения скрипта
переменным будут присвоены следующие значения:
L = [[ 1, 0, 0];
[-0.3, -0.04, 1];
[ 0.5, 1, 0]];
U = [[10, -7, 0];
[ 0, 2.5, 5];
[ 0, 0, 6.2]]
Переменной D будет присвоено значение [[10 , -7 , 0];[-3 , 2 , 6];[5 , -1
, 5]], равное исходной матрице A.
Пример 3
const A = [[10, -7, 0],
[-3, 2, 6],
[5, -1, 5]];
var L: array2, U: array2, Pv: array2;
// Форма с раздельным выводом матриц L,U и матрицей перестановок Pv
B = lu(A, L, U,Pv);
//Проверка разложения
D = Pv*L*U;
В скрипте примера производится LU-разложение матрицы A с раздельным
выводом матриц L, U и матрицы перестановок
P. В результате выполнения скрипта переменным будут присвоены следующие
значения:
L = [[ 1, 0, 0];
[0.5, 1, 0];
[-0.3, -0.04, 1]]
U = [[10, -7, 0];
[ 0, 2.5, 5];
[ 0, 0, 6.2]]
Pv = [[1, 0, 0];
[0, 0, 1];
[0, 1, 0]]
Переменной D будет присвоено значение, равное исходной матрице
A.
Сопутствующие материалы
Материалов нет.