Структура библиотеки

Библиотека SADEL состоит из 4 программ-решателей:

1. Решатель СЛАУ методом Гаусса на полных матрицах: LAE-Solver-01
2. Решатель СЛАУ LAE-Solver-3diag для решения СЛАУ с 3-х диагональными матрицами
3. Решатель СЛАУ методом LU разложения на полных матрицах: программа LAE-Solver-02
4. Решатель ОДУ методом DMAN на полных матрицах: Math-DAE-Solver-01

1. Решатель СЛАУ методом Гаусса на полных матрицах: LAE-Solver-01

Описание функции:

void lae_solver_01
(
int *n, ///< определяет размер системы линейных уравнений
double A[], ///< квадратная матрица коэффициентов, размером nxn
double B[], ///< вектор правых частей системы
double X[], ///< вектор неизвестных системы уравнений
int *ier ///< код ошибки: ier=0 — точность в 15 значащих цифр для всех ///< неизвестных системы получена ier=1 — требуемая точность не получена или ///< система вырождена
)

Обращение к функции:
lae_solver_01(&n, A, B, X, &ier);

Эта функция решает СЛАУ методом Гаусса с полными матрицами: до 8 уравнений вида:
AX = B,
где n – определяет размер СЛАУ, А — квадратная матрица коэффициентов, размером nxn, В — вектор правых частей системы, Х — вектор неизвестных СЛАУ, ier – код ошибки, если ier=0 – вектор неизвестных Х получен с точностью в 15 верных значащих цифр для всех неизвестных СЛАУ, если ier=1 — точность в 15 верных значащих цифр для всех неизвестных СЛАУ не получена или система вырождена.

наверх

2. Решатель СЛАУ LAE-Solver-3diag для решения СЛАУ с 3-х диагональными матрицами

Описание функции:

void lae_solver_3diag(
int *n, ///< размер системы уравнений
double A[], ///< трехдиагональная матрица коэффициентов, размером nx3
///1-й столбец — нижняя диагональ (А(1,1)=0.0),
///2-й столбец — основная диагональ,
///3-й столбец — верхняя диагональ(А(n,3)=0.0),
double B[], ///< вектор правых частей системы
double X[], ///< вектор неизвестных системы уравнений
int *ier ///< код ошибки: ier=0 — точность в 15 значащих цифр для всех ///< неизвестных системы получена ier=1 — требуемая точность не получена или ///< система вырождена
)

Обращение к функции:
lae_solver_3diag(&n, A, B, X, &ier);

Эта функция решает СЛАУ методом прогонки с 3-х диагональными матрицами: до 200 уравнений вида:
AX = B,
где n – определяет размер СЛАУ, А — матрица коэффициентов, размером nx3, 1-й столбец — нижняя диагональ (А(1,1)=0.0), 2-й столбец — основная диагональ, 3-й столбец — верхняя диагональ(А(n,3)=0.0), В — вектор правых частей системы, Х — вектор неизвестных СЛАУ, ier – код ошибки, если ier=0 – вектор неизвестных Х получен с точностью в 15 верных значащих цифр для всех неизвестных СЛАУ, если ier=1 — точность в 15 верных значащих цифр для всех неизвестных СЛАУ не получена или система вырождена.
Программа-решатель для СЛАУ с 3-х диагональными матрицами разработана по просьбе посетителей сайта. Эта программа будет решать с машинной гарантированной точностью СЛАУ с 3-х диагональными матрицами любой размерности, ограниченной только возможностями компьютера. Даже на ПК можно будет получать миллионы неизвестных со сверхточностью (extra precision) для всех неизвестных СЛАУ, — такая точность недоступна для итерационных методов решения СЛАУ, используемых в настоящее время. Так как для 3-х диагональных матриц накопление погрешности для прямых, точных методов решения СЛАУ не происходит, то машинная точность решения гарантируется независимо от размерности систем, — эта же идея будет реализована и для произвольных разреженных СЛАУ и снимет «проклятие огромной размерности решаемых СЛАУ», о которой нас предупреждают опытные расчетчики.

наверх

3. Решатель СЛАУ методом LU разложения на полных матрицах: программа LAE-Solver-02

Описание функции:

void lae_solver_02(
int *n, ///< определяет размер системы линейных уравнений
double A[], ///< квадратная матрица коэффициентов, размером nxn
double B[], ///< вектор правых частей системы
double L[], ///< нижнетреугольная L матрица разложения
double U[], ///< верхнетреугольная U матрица разложения
int *ier ///< код ошибки: ier=0 — точность в 15 значащих цифр для всех ///< неизвестных системы получена ier=1 — требуемая точность не получена или ///< система вырождена
}

Обращение к функции:

lae_solver_02(&n, A, B, L, U, X,&ier);

Эта функция решает СЛАУ методом LU разложения с полными матрицами: до 8 уравнений вида:
AX = B,
где n – определяет размер СЛАУ, А — квадратная матрица коэффициентов, размером nxn, В — вектор правых частей системы, Х — вектор неизвестных СЛАУ, также пользователю выдается результат разложения – матрицы L и U, ier – код ошибки, если ier=0 – вектор неизвестных Х получен с точностью в 15 верных значащих цифр для всех неизвестных СЛАУ, если ier=1 — точность в 15 верных значащих цифр для всех неизвестных СЛАУ не получена или система вырождена.

наверх

4. Решатель ОДУ методом DMAN на полных матрицах: Math-DAE-Solver-01

Подробную информацию о решателе ОДУ смотрите в Руководстве пользователя.

наверх

Добавить комментарий