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
 You are 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.