Файл chol.h

Разложение Холецкого. Подробнее...


Функции

void chol_decomp (double **A, size_t n)
 Разложение Холецкого.
void chol_solve (double **LL, size_t n, double *b)
 Решение системы линейных уравнений.


Подробное описание

Разложение Холецкого.

Файл содержит функции, реализующие и использующие разложение Холецкого.

Произвольная квадратная положительно определенная матрица допускает разложение вида $A=LL^T$, где $L$ - нижнетреугольная матрица. Такое разложение можно использовать для решения системы линейных уравнений $Ax=b$ с положительно определенной матрицей $A$ путем сведения ее к двум треугольным системам $Ly=b$, $L^Tx=y$.


Функции

void chol_decomp ( double **  A,
size_t  n 
)

Разложение Холецкого.

Функция находит разложение Холецкого квадратной положительно определенной матрицы $A$ порядка $n$. На выходе диагональ и нижнетреугольная часть матрицы $A$ содержат элементы матрицы $L$. Верхнетреугольная часть матрицы $A$ содержит элементы матрицы $L^T$. Диагональные элементы матриц $L$ и $L^T$ совпадают. Если матрица $A$ не является положительно определенной, то генерируется ошибка nl_err_matrix_is_not_positive_definite.

Для разложения используется алгоритм Холецкого (квадратных корней)

Трудоемкость: $\frac13n^3 + O(n^2)$ операций с плавающей запятой

Примеры:
xchol.c.

void chol_solve ( double **  LL,
size_t  n,
double *  b 
)

Решение системы линейных уравнений.

Функция находит решение квадратной системы линейных уравнений $Ax=b$ порядка $n$ с положительно определенной матрицей $A$, используя ее разложение Холецкого. Разложение Холецкого матрицы $A$ должно быть представлено матрицей $LL$, возвращаемой функцией chol_decomp. Решение $x$ записывается на месте вектора правой части $b$. Матрица $LL$ не изменяется данной функцией и может быть использованы для решения системы с другой правой частью.

Используется алгоритм прямой и обратной подстановки.

Трудоемкость: $2n^2 + O(n)$ операций с плавающей запятой

Примеры:
xchol.c.


Документация по NL. Последние изменения: Mon Oct 9 12:25:54 2006. Создано системой  doxygen 1.4.7