NUMAL Section 5.2.1.1.1.3.A

BEGIN SECTION : 5.2.1.1.1.3.A (August, 1974)

AUTHORS: P.J. VAN DER HOUWEN AND P.A.BEENTJES.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 730616.

BRIEF DESCRIPTION:

    MODIFIED TAYLOR SOLVES AN INITIAL ( BOUNDARY ) VALUE PROBLEM, GIVEN
    AS A SYSTEM  OF  FIRST ORDER DIFFERENTIAL EQUATIONS , BY MEANS OF A
    ONE-STEP TAYLOR-METHOD.
    IN PARTICULAR THIS METHOD IS SUITABLE FOR THE INTEGRATION OF  LARGE
    SYSTEMS ARISING FROM PARTIAL DIFFERENTIAL EQUATIONS , PROVIDED THAT
    HIGHER ORDER DERIVATIVES CAN BE EASILY OBTAINED.

KEYWORDS:

    DIFFERENTIAL EQUATIONS,
    INITIAL (BOUNDARY) VALUE PROBLEMS,
    ONE-STEP TAYLOR-METHOD.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" MODIFIED TAYLOR (T,TE,M0,M,U,SIGMA,TAUMIN,I,DERIVATIVE,
                               K,DATA,ALFA,NORM,AETA,RETA,ETA,RHO,OUT);
    "INTEGER" M0,M,I,K,NORM;
    "REAL" T,TE,SIGMA,TAUMIN,ALFA,AETA,RETA,ETA,RHO;
    "ARRAY" U,DATA;
    "PROCEDURE" DERIVATIVE,OUT;
    "CODE" 33040;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    T:      <VARIABLE>;
            THE INDEPENDENT VARIABLE T;
            MAY BE USED IN DERIVATIVE, SIGMA ETC.;
            ENTRY: THE INITIAL VALUE T0;
            EXIT : THE FINAL VALUE TE;
    TE:     <ARITHMETIC EXPRESSION>;
            THE FINAL VALUE OF T (TE >= T);
    M0,M:   <ARITHMETIC EXPRESSION>;
            INDICES OF THE FIRST AND LAST EQUATION OF THE SYSTEM TO  BE
            SOLVED;
    U:      <ARRAY IDENTIFIER>;
            "ARRAY" U[M0:M];
            THE DEPENDENT VARIABLE;
            ENTRY: THE INITIAL VALUES OF THE SOLUTION OF THE SYSTEM  OF
                   DIFFERENTIAL EQUATIONS AT T = T0;
            EXIT : THE VALUES OF THE SOLUTION AT T = TE;
    SIGMA:  <ARITHMETIC EXPRESSION>;
            THE SPECTRAL RADIUS OF THE JACOBIAN MATRIX WITH RESPECT
            TO THOSE EIGENVALUES WHICH ARE LOCATED IN THE LEFT
            HALFPLANE;
            IF  SIGMA  TENDS  TO  INFINITY , PROCEDURE  MODIFIED TAYLOR
            TERMINATES;
    TAUMIN: <ARITHMETIC EXPRESSION>;
            MINIMAL STEP LENGTH BY WHICH THE INTEGRATION IS  PERFORMED;
            HOWEVER,ACTUAL STEPSIZES WILL ALWAYS BE WITHIN THE INTERVAL
            [MIN(HMIN,HSTAB),HSTAB],WHERE HSTAB(= DATA[0]/SIGMA) IS THE
            STEPLENGTH PRESCRIBED BY STABILITY CONSIDERATIONS;
    I:      <VARIABLE>;
            A JENSEN PARAMETER FOR PROCEDURE DERIVATIVE;
            MAY BE USED IN M0 AND M;
    DERIVATIVE: <PROCEDURE IDENTIFIER>;
            THE HEADING OF THIS PROCEDURE READS:
            "PROCEDURE" DERIVATIVE(I,A); "INTEGER" I; "ARRAY" A;
            WHEN THIS PROCEDURE IS CALLED, ARRAY A[M0 : M] CONTAINS THE
            COMPONENTS OF THE (I-1)-ST DERIVATIVE OF U  AT THE POINT T;
            UPON COMPLETION OF DERIVATIVE, ARRAY A SHOULD  CONTAIN  THE
            COMPONENTS  OF THE I-TH  DERIVATIVE  OF U AT  THE POINT  T;
    K:      <VARIABLE>;
            INDICATES  THE  NUMBER  OF  INTEGRATION  STEPS   PERFORMED;
            ENTRY: K = 0;

    DATA:   <ARRAY IDENTIFIER>;
            "ARRAY" DATA[-2 : DATA[-2]];
            ENTRY:
            DATA[-2]: THE  ORDER OF THE  HIGHEST DERIVATIVE  UPON WHICH
                      THE TAYLOR METHOD IS BASED;
            DATA[-1]: ORDER OF ACCURACY OF THE METHOD;
            DATA[0] : STABILITY PARAMETER;
            DATA[1] , ... , DATA[DATA[-2]] :  POLYNOMIAL  COEFFICIENTS;
            FOR FURTHER EXPLANATION AND POSSIBLE VALUES OF THE ELEMENTS
            OF ARRAY DATA SEE REFERENCES [2] AND [3];
    ALFA:   <ARITHMETIC EXPRESSION>;
            GROWTH FACTOR FOR THE INTEGRATION STEP LENGTH;
    NORM:   <ARITHMETIC EXPRESSION>;
            IF NORM = 1 DISCREPANCY AND TOLERANCE ARE ESTIMATED IN  THE
            MAXIMUM NORM, OTHERWISE IN THE EUCLIDIAN NORM;
    AETA,RETA: <ARITHMETIC EXPRESSION>;
            DESIRED ABSOLUTE AND RELATIVE ACCURACY;
            IF BOTH  AETA AND RETA  ARE NEGATIVE , ACCURACY  CONDITIONS
            WILL BE IGNORED;
    ETA,RHO: <VARIABLE>;
            COMPUTED TOLERANCE AND DISCREPANCY;
    OUT:    <PROCEDURE IDENTIFIER>;
            THE  HEADING  OF  THIS  PROCEDURE  READS : "PROCEDURE" OUT;
            THROUGH  THIS  PROCEDURE  THE VALUES AFTER EACH INTEGRATION
            STEP  OF  FOR INSTANCE  T, U, ETA AND RHO  ARE  ACCESSIBLE.

DATA AND RESULTS:

    FOR FURTHER EXPLANATION OF THE PARAMETERS AETA, RETA, ETA, RHO, M0,
    M AND THE ARRAY DATA SEE REFERENCES [2] AND [3].
    AS  FOR  THE  INDICES  M0 AND M THE FOLLOWING MAY BE REMARKED: WHEN
    THE METHOD OF LINES IS APPLIED TO HYPERBOLIC DIFFERENTIAL EQUATIONS
    THE NUMBER OF  RELEVANT  ORDINARY DIFFERENTIAL EQUATIONS  DECREASES
    DURING THE INTEGRATION PROCESS.
    IN PROCEDURE MODIFIED TAYLOR , THIS  MAY  BE  REALIZED  BY  INTEGER
    PROCEDURES M0 AND M WHICH  ARE  DEFINED  AS  FUNCTIONS OF I, K  AND
    DATA[-2].

PROCEDURES USED: VECVEC = CP34010.

REQUIRED CENTRAL MEMORY:

    EXECUTION FIELD LENGTH: CIRCA 75 + M - M0.

RUNNING TIME:

    DEPENDS  STRONGLY  ON  THE  DIFFERENTIAL  EQUATION  TO  BE  SOLVED.

LANGUAGE: ALGOL 60.

METHOD AND PERFORMANCE: SEE REFERENCES.

REFERENCES:

    [1].P.J. VAN DER HOUWEN.
        ONE-STEP METHODS FOR LINEAR INITIAL VALUE PROBLEMS I,
        POLYNOMIAL METHODS,TW REPORT 119,
        MATHEMATICAL CENTRE, AMSTERDAM (1970).

    [2].P.J. VAN DER HOUWEN, P.BEENTJES, K.DEKKER AND E.SLAGT
        ONE-STEP METHODS FOR LINEAR INITIAL VALUE PROBLEMS III,
        NUMERICAL EXAMPLES, TW REPORT 130/71,
        MATHEMATICAL CENTRE, AMSTERDAM (1971).

    [3].P.J. VAN DER HOUWEN, J.KOK.
        NUMERICAL SOLUTION OF A MINIMAX PROBLEM, TW REPORT 123/71,
        MATHEMATICAL CENTRE, AMSTERDAM (1971).

EXAMPLE OF USE:

    THE  SOLUTION AT T=EXP(1) AND T=EXP(2) OF THE DIFFERENTIAL EQUATION
    DU/DT=-EXP(T)*(U-LN(T)) + 1/T WITH INITIAL CONDITION U(.01)=LN(.01)
    AND  ANALYTICAL SOLUTION U(T) = LN(T), MAY BE OBTAINED  AS FOLLOWS:

    "BEGIN" "INTEGER" I,K;"REAL" T,TE,ETA,RHO,EXPT,LNT,C0,C1,C2,C3;
        "ARRAY" U[0:0],DATA[-2:4];
        "PROCEDURE" OP;"IF" T=TE "THEN"
        OUTPUT(61,"(""("NUMBER OF STEPS:")",3ZD,/,
                     "("SOLUTION:  T= ")",+D.5D,
                     "("    U(T) = ")",+D.7D,//")",K,T,U[0]);
        "PROCEDURE" DER(I,A);"INTEGER" I;"ARRAY" A;
        "BEGIN" "IF" I=1 "THEN"
            "BEGIN" EXPT:=EXP(T);LNT:=LN(T);C0:=A[0];
                C1:=A[0]:=-EXPT*C0+1/T+EXPT*LNT
            "END";
            "IF" I=2 "THEN" C2:=A[0]:=EXPT*(LNT+1/T-C0-C1)-1/T/T;
            "IF" I=3 "THEN" C3:=A[0]:=
            EXPT*(LNT+2/T-C0-2*C1-C2-1/T/T)+2/T/T/T;
            "IF" I=4 "THEN" A[0]:=C3-2*(1+3/T)/T/T/T+
            EXPT*((1-(2-2/T)/T)/T-C1-C2*2-C3)
        "END";
        I:=-2;"FOR" T:=4,3,6.025,1,.5,1/6,.018455702 "DO"
        "BEGIN" DATA[I]:=T;I:=I+1 "END";
        T:=U[0]:="-2;K:=0;"FOR" TE:=EXP(1),TE*TE "DO"
        MODIFIED TAYLOR(T,TE,0,0,U,EXP(T),"-4,I,DER,K,DATA,1.5,1,"-5,
                       "-4,ETA,RHO,OP)
    "END"

    THIS PROGRAM DELIVERS:

    NUMBER OF STEPS:  46
    SOLUTION:  T= +2.71828    U(T) = +1.0000285

    NUMBER OF STEPS: 424
    SOLUTION:  T= +7.38906    U(T) = +1.9999967

SOURCE TEXT(S):
"CODE" 33040;