p align="justify">
void ldltdecomposition (SparceMatrix & a, int n, bool isupper, int * pivots); Алгоритм представляє симетричну матрицю (не обов'язково позитивно певну) у вигляді A = L * D * L 'або A = U * D * U', де матриця D - блочно-діагональна з блоками розміром 1x1 або 2x2, матриця L (матриця U) - твір ніжнетреугольних (верхнетреугольних) матриць з одиничною діагоналлю і матриць перестановок.
Вхідні параметри :
A - факторізуемих матриця в компактному вигляді. Масив з нумерацією елементів [1 .. N, 1 .. N]. Якщо IsUpper = True, то у верхньому трикутнику знаходяться елементи симетричної матриці A, а нижній трикутник не використовується (аналогічно, якщо IsUpper = False). p align="justify"> N - розмір факторізуемих матриці IsUpper-параметр, який вказує спосіб завдання матриці (верхнім або нижнім трикутником).
Вихідні параметри:
A - матриці D і U, якщо IsUpper = True, або L, якщо IsUpper = False, в компактній формі, які заміщають верхній (нижній) трикутник матриці A. При цьому елементи, розташовані нижче (вище) головної діагоналі не використовуються і не модифікуються. p align="justify"> Pivots-таблиця вироблених перестановок.
Рішення системи лінійних рівнянь з матрицею системи, заданої LDLT-розкладанням.
bool solvesystemldlt (SparceMatrix & a, int * pivots, double * b, int n,
bool isupper, double * x);
Алгоритм вирішує тільки системи рівнянь з квадратною матрицею.
Вхідні параметри : - LDLT-розкладання матриці системи (результат роботи підпрограми LDLTDecomposition). таблиця перестановок (результат роботи підпрограми LDLTDecomposition). - права частина системи. Масив з нумерацією елементів [1 .. N] - розмірність сістеми.указивает трикутник матриці A, в якому зберігається розкладання. Якщо IsUpper = True, то розкладання має вигляд U * D * U ', і у верхньому трикутнику матриці A зберігається матриця U (при цьому нижній трикутник не використовується і не змінюється підпрограмою). Аналогічно, якщо IsUpper = False, розкладання має вигляд L * D * L ', і передається матриця L (у нижньому трикутнику).
Вихідні параметри : - рішення системи. Масив з нумерацією елементів [1 .. N]
Результат : - якщо система не вироджена. X містить рішення. - Якщо система вироджена (визначник матриці D cтрого дорівнює нулю). У такому випадку X не містить рішення.
Зберігання матриці в компактному віде.SparseMatrix;
Клас являє собою сортований двовимірний список. Пошук здійснюється по рядках а по...