NINE Library "JINRLIB" Authors: B.Batgerel, E.V.Zemlyanaya, I.V.Puzynin You are Language: Fortran 90 visitor here. PROGRAM FOR NUMERICAL SOLUTION OF THE BOUNDARY PROBLEMS FOR NONLINEAR DIFFERENTIAL EQUATIONS ON THE BASIS OF CANM 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 (real*8), ALPHA2 (real*8), BETA1 (real*8), BETA2 (real*8), GAMMA1 (real*8), 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 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 - job arrays of N real*8 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. Sources,tests and detailed description (in Russian, pdf) are submitted. |