COPTION DOUBLE,DUMP=1 DIFF (X1,X,1) = 4.0 * X2 - 2.0 * DIFF (X2,X ,1) - 2.0 * X1 DIFF (X2,X,2) = 3.0*DIFF(X2,X,1)-2.0*X2-DIFF(X1,X,2)-DIFF(X1,X,1) C +X1 $ $ C1 = 1.0d0 C2 = 0.0002d0 C3 = 0.0003d0 MPRINT = 2 NSTEPS = 1000 START = 1.5d0 END = 8.0d0 DLTXPT = 0.1d0 X1(1) = (2.0d0 * C1 + 6.0d0 * C3 * DEXP(-START)) X2(1) = (C1 + C2 * DEXP(2.0d0 * START) + C3 * DEXP(-START)) X2(2) = (2.0d0 * C2 * EXP(2.0d0 * START) - C3 * DEXP(-START)) WRITE(LIST,120) START,END,DLTXPT,X1(1),X2(1),X2(2) 120 FORMAT(8F16.10) $ $ C DIGITS := 64; C MAX_TERMS:=40; C ! C # PROBLEM FROM BOYCE DEPRIMA - C # _ELEMENTARY DIFFERENTIAL EQUATIONS AND BOUNDARY VALUE PROBLEMS_ C # PAGE 269 C # C T_START := 1.5; C # C # DID POORLY WITH T_START := 0.5 C # MAIN HELP IS SMALLER H C # C T_END := 8.0; C DIFF(X1,0,EXACT_SOLN_X1(T_START)); C # I THINK FOLLOWING LINE SHOULD BE OMITTED C # DIFF(X1,1,EXACT_SOLN_X1P(T_START)); C DIFF(X2,0,EXACT_SOLN_X2(T_START)); C DIFF(X2,1,EXACT_SOLN_X2P(T_START)); C GLOB_LOOK_POLES := TRUE; C GLOB_MAX_H := 0.0001; C # C # NOT GIVEN = 0 C # REAL = 1 C # COMPLEX = 2 C # NO POLE = 3 C # IMPOSSIBLE EQ = 4 C # C GLOB_TYPE_GIVEN_POLE := 0; C ! C EXACT_SOLN_X1 := PROC(T) C LOCAL C1,C2,C3; C C1 := 1.0; C C2 := 0.0002; C C3 := 0.0003; C RETURN(2.0 * C1 + 6.0 * C3 * EXP(-T)); C END; C EXACT_SOLN_X1P := PROC(T) C LOCAL C1,C2,C3; C C1 := 1.0; C C2 := 0.0002; C C3 := 0.0003; C RETURN( - 6.0 * C3 * EXP(-T)); C END; C EXACT_SOLN_X2 := PROC(T) C LOCAL C1,C2,C3; C C1 := 1.0; C C2 := 0.0002; C C3 := 0.0003; C RETURN(C1 + C2 * EXP(2.0 * T) + C3 * EXP(-T)); C END; C EXACT_SOLN_X2P := PROC(T) C LOCAL C1,C2,C3; C C1 := 1.0; C C2 := 0.0002; C C3 := 0.0003; C RETURN( 2.0 * C2 * EXP(2.0 * T) - C3 * EXP(-T)); C END;