JOINT   INSTITUTE   FOR   NUCLEAR   RESEARCH
lit PROGRAM   LIBRARY   JINRLIB

NINE - program for numerical solution of the boundary problems for nonlinear differential equations on the basis of CANM


Authors: B.Batgerel, E.V.Zemlyanaya, I.V.Puzynin
rus
You are
counter
visitor here.

Language: Fortran 90


The subroutine NINE (Newtonian Iteration for Nonlinear Equation) is the FORTRAN 90 code for the numerical solution of the boundary problem for nonlinear ordinary differential equation

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

on the basis of continuous analogue of the Newton method (CANM). Numerov's finite-difference approximation is applied to provide the fourth accuracy order with respect to the discretization stepsize. Different algorithms of calculating the Newtonian iterative parameter are employed.

Usage:

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

N (integer) - number of nodes of the discrete mesh of argument x;
H (real*8) - the stepsize of the discrete mesh;
TOL (real*8) - positive small number, a tolerance criterion of the convergence of iteration process;
ALPHA1,ALPHA2,
BETA1,BETA2,
GAMMA1,GAMMA2 (real*8)
- parameters of the boundary conditions;
KEY_TAU (integer) - the key of algorithm of the Newtonian parameter τ (see Detailed description):
KEY_TAU=1: TAU is calculated by means eqs.(18),(17) from Detailed description [3];
KEY_TAU=2: TAU is calculated by means eqs.(19),(17)
KEY_TAU=3: TAU0 is calculated by means eqs.(15),(17); TAU is calculated by means eq.(17);
KEY_TAU=4: TAU is calculated by means eq.(17), TAU0=TAUMIN;
KEY_TAU=5: TAU is calculated by means eq.(15);
TAUMIN (real*8) - lower bound of TAU;
ITER_MAX (integer) - maximal number of iterations;
X (real*8) - arrays of N nodes of the discrete mesh of x;
YNEWTON,V,V1,Fk,Gk, Uk,AV,BV,DY,D2Y (real*8) - job arrays of N elements;
Y (real*8) - array of solution y(x) in N nodes of the discrete mesh. At the start, Y should contain initial guess of solution. At the end, Y contains the resulting solution.

User should write the real*8 functions FF(X,Y,Z), FY(X,Y,Z), FDY(X,Y,Z) for the calculation of f(x,y,y'), df(x,y,y')/dy, df(x,y,y')/dy', respectively.

Download sources, tests and Detailed description (in Russian, pdf).




home up e-mail