Язык: Фортран
Программа NLEVSD служит для решения нелинейной задачи
на собственные значения для системы из NDE <= 32 обыкновенных
дифференциальных уравнений первого порядка вида:
Fm ( x,y,y',p ) = 0, m = 1,2, ... NDE
на интервале (a, b), где a < b, с граничными условиями:
L1 ( a, y(a) ) = 0, l = 1,2,...,NBCL,
Rr( b, y(b) ) = 0, r = NBCL+1,...,NDE.
Здесь p - искомый параметр.
Предполагается, что задано также "условие нормировки" в точке XP ( a <= XP <= b ):
H (y,p) = 0.
Для поиска решения { y(x), p } применяется непрерывный аналог
метода Ньютона вместе с методом сплайн - коллокации в гауссовых
узлах сетки.
Обращение:
CALL NLEVSD (X,Y,PRM,XP,NDE,NBCL,NPAR,NNOD,HX,W,U,V,YO,RHSU,RHSV,INTEGS,
TIMES,NITEM,ITER,EPS,FUN,DFUN,BCOND,DBCOND,PCOND,DPCOND,DETAILS,IFAIL)
X |
- |
сетка из NNOD узлов (задается пользователем); |
Y |
- |
массив из 2NDE*NNOD элементов;
на входе содержит начальное приближение,
на выходе содержит решение y(x) в узлах сетки; |
PRM |
- |
на выходе содержит собственное значение p; |
NPAR |
- |
= 1 |
HX |
- |
массив из NNOD-1 шагов сетки (задается пользователем); |
W |
- |
рабочий массив из 8*NNOD*NDE**2 элементов; |
U,V,YO,RHSU,RHSV |
- |
рабочие массивы из 2*NDE*NNOD элементов; |
INTEGS |
- |
INTEGER массив размера 2*NNOD-2; |
TIMES |
- |
число обращений к подпрограмме; |
NITEM |
- |
максимальное число итераций (задается пользователем); |
ITER |
- |
число итераций; |
EPS |
- |
абсолютная точность (задается пользователем); |
BCOND |
- |
подпрограмма вычисления левых частей граничных условий; |
DBCOND |
- |
подпрограмма вычисления производных Фреше левых частей
граничных условий; |
PCOND |
- |
подпрограмма вычисления левой части условия; |
DPCOND |
- |
подпрограмма вычисления производной Фреше левой части условия; |
DETAILS |
- |
(integer) уровень печати |
IFAIL |
- |
флаг итераций (IFAIL=0 - итерационный процесс сходится
за ITER итераций). |
Архив программы с исходными текстами.