|
MATPROG,CMATPROG Библиотека "JINRLIB"
Автор: Е.В.Земляная Вы
Язык: Фортран
посетитель.
РЕШЕНИЕ ТРЕХДИАГОНАЛЬНОЙ АЛГЕБРАИЧЕСКОЙ СИСТЕМЫ ВЕКТОРНЫХ
УРАВНЕНИЙ МЕТОДОМ МАТРИЧНОЙ ПРОГОНКИ
Программа MATPROG (CMATPROG) предназначена для решения алгебраической
системы следующего вида:
ai * zi-1 + bi * zi + ci * zi+1 = di i =1,...,N (1)
где:
a, b, c - матрицы коэффициентов размерностью (L,L,N);
d - вектор правых частей размерностью (L,N);
z - вектор решений размерностью (L,N).
В программе MATPROG данные a,b,c,d,z - вещественные;
СMATPROG реализует случай комплексных переменных.
Системы вида (1) возникают, как правило, при конечно-разностной
аппроксимации краевых задач для систем линейных обыкновенных
дифференциальных уравнений. Таким образом, данная подпрограмма
может использоваться непосредственно для численного решения указанных
систем, а также входить как составная часть в комплексы программ,
где системы вида (1) возникают на промежуточных этапах, а именно:
программная реализация неявных схем для уравнений в частных
производных, ньютоновских итерационных схем для нелинейных
дифференциальных систем либо задач на собственные значения и т.д.
Архив программы включает в себя:
описание программ, фортранные тексты программ и тестов, результаты тестов,
текст препринта [2] с описанием алгоритма (в формате .pdf).
Структура:
----------
Тип: SUBROUTINE
Имена входа для пользователя: MATPROG, CMATPROG
Используемые подпрограммы: MATIN2
Внутренние подпрограммы: MULTMM, MULTMV, INVERSE,
MULTMMC, MULTMVC, INVERSE_C.
Обращение:
----------
CALL MATPROG (N,L,a,b,c,d,z,aa,bb)
CALL CMATPROG (N,L,a,b,c,d,z,aa,bb), где:
N, L - (INTEGER) размерность массивов;
a,b,c - массивы коэффициентов размерности (L,L,N);
d - массив правых частей размерности (L,N);
z - вектор решений, получаемых в результате работы программы,
размерности (L,N);
aa,bb - рабочие массивы размерности (L,L,N).
В программе MATPROG тип переменных a,b,c,d,z,aa,bb - REAL*8;
В программе CMATPROG тип переменных a,b,c,d,z,aa,bb - СOMPLEX*16.
Программы MULTMM, MULTMV, INVERSE, MULTMMC, MULTMVC, INVERSE_C
используются для перемножения матриц и векторов (комплексных и
вещественных) и для обращения матрицы (в комплексном и вещественном виде).
Метод:
------
Принципы матричной прогонки излагаются в книгах А.А.Самарского
(см., например, [1]). Алгоритм, реализованный в программах MATPROG
и CMATPROG, подробно описан в [2], п.4.
На практике программа MATPROG использовалась в рамках неявной
схемы для моделирования термоупругих эффектов в металлах под
действием импульсного ионного излучения [2]; программа CMATPROG
применялась в составе ньютоновской схемы для исследования
устойчивости щелевых солитонов [3].
Литература:
-----------
1. А.А.Самарский, С.В.Николаев. Методы решения сеточных
уравнений. Наука, 1978.
2. И.В.Амирханов, Е.В.Земляная, И.В.Пузынин, Т.П.Пузынина,
И.Сархадов. Сообщение ОИЯИ Р11-2002-24, Дубна, 2002.
3. I.V.Barashenkov and E.V.Zemlyanaya.
Comp. Phys. Comm. Vol.126, No.1-2, 2000, pp.22-27
|