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 |