ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit БИБЛИОТЕКА   ПРОГРАММ   JINRLIB

NINE - программа численного решения граничных задач для нелинейных дифференциальных уравнений методом НАМН


Авторы: Б.Батгэрэл, Е.В.Земляная, И.В.Пузынин
eng
Вы
counter
посетитель.

Язык: Фортран 90


Программа NINE (Newtonian Iteration for Nonlinear Equation) предназначена для решения граничной задачи для обыкновенного нелинейного дифференциального уравнения второго порядка

y"+f(x,y,y')=0, a ≤ x ≤ b,
α1*y'(a)+β1*y(a)=γ1,
α2*y'(a)+β2*y(a)=γ2,

на основе непрерывного аналога метода Ньютона (НАМН) (см. обзор [1]) с использованием нумеровской аппроксимации четвертого порядка относительно шага дискретизации по пространственной переменной и различных вариантов выбора итерационного параметра (см.[1],[2]).

Подробное описание вычислительной схемы дано в [3].

Программа написана на языке Фортран 90. Используется подпрограмма PROGON4 из библиотеки "JINRLIB".

Обращение к программе NINЕ осуществляется оператором:

CALL NINE ( N, H, TOL, ALPHA1, ALPHA2, BETA1, BETA2, GAMMA1, GAMMA2, KEY_TAU0, TAUMIN, ITER_MAX,
X, YNEWTON, V, Fk, Gk, Uk, Y )

Входные параметры:

N (integer) - число узлов равномерной дискретной сетки по аргументу x;
H (real*8) - шаг равномерной дискретной сетки по аргументу x;
TOL (real*8) - положительное малое число, критерий сходимости итерационного процесса, при выполнении которого происходит выход из программы (см. описание [3]);
ALPHA1,ALPHA2 (real*8) - коэффициенты перед первой производной в граничных условиях;
BETA1,BETA2 (real*8) - коэффициенты перед функцией в граничных условиях;
GAMMA1,GAMMA2 (real*8) - коэффициенты в правой части граничных условий;
KEY_TAU (integer) - параметр, определяющий выбор ньютоновского итерационного параметра τ ; может принимать значения 1,2,3,4,5:
при KEY_TAU=1 TAU вычисляется по формулам (18),(17) из [3];
при KEY_TAU=2 TAU вычисляется по формулам (19),(17);
при KEY_TAU=3 начальное значение TAU=TAU0 вычисляется по формулам (15),(17), далее TAU рассчитывается по формуле (17);
при KEY_TAU=4 TAU вычисляется по формуле (17) с начальным значением TAU0=TAUMIN;
при KEY_TAU=5 TAU вычисляется по формуле (15);
TAUMIN (real*8) - минимальное значение итерационного параметра;
ITER_MAX (integer) - максимальное число итераций, после которого происходит выход из программы;
X (real*8) - массив узлов равномерной дискретной сетки по аргументу x размерности N;
YNEWTON,V,V1,Fk,Gk, Uk,AV,BV,DY,D2Y (real*8) - рабочие массивы размерности N;
Y (real*8) - массив решения y(x) размерности N в узлах дискретной сетки по х. При обращении к программе NINE в этом массиве должно находиться начальное приближение для решения граничной задачи. Этот же массив Y является выходным параметром: после окончания работы программы здесь находится полученное численное решение.

Пользователь должен составить real*8 функции FF(X,Y,Z), FY(X,Y,Z), FDY(X,Y,Z) для вычисления соответственно функций f(x,y,y'), df(x,y,y')/dy, df(x,y,y')/dy'.

Архив программы включает в себя программу NINE.f90, тесты, результаты, а также подробное описание (в формате pdf).

Литература:

  1. Пузынин И.В. и др. О методах вычислительной физики для исследования моделей сложных физических процессов. // Физика элементарных частиц и атомного ядра, 2007. Т. 38. Вып. 1. - C. 144-232.
  2. Пузынин И. В., Пузынина Т. П., Тхак В. Ч. SLIPM - программа на языке MAPLE для численного решения частичной проблемы Штурма-Лиувилля на основе непрерывного аналога метода Ньютона.// Вестник РУДН. Серия Математика. Информатика. Физика, 2010. Вып. 2(2). - С. 90-98.
  3. Батгэрэл Б., Земляная Е. В., Пузынин И. В. Программа NINE: численное решение граничных задач для нелинейных дифференциальных уравнений методом НАМН. Принято в печать в журнал Компьютерные Исследования и Моделирование.



home up e-mail