solve: do not call MEVAL.
[maxima.git] / share / diffequations / desoln.usg
blobef91cf2533f5ad96e8f16a58183fc9a28d296099
1 WRITTEN BY RAB.
2 DESOLN LISP CONTAINS A ROUTINE FOR SOLVING DIFFERENTIAL EQUATIONS
3 OR SYSTEMS OF THEM BY USING LAPLACE TRANSFORMS. THE CALL IS:
5 DESOLVE(EQ,VAR) OR DESOLVE([EQ1,...,EQN],[VAR1,...,VARN])
7 WHERE THE EQ'S ARE DIFFERENTIAL EQUATIONS IN THE DEPENDENT VARIABLES
8 VAR1,...,VARN.  THE FUNCTIONAL RELATIONSHIPS MUST BE EXPLICITLY
9 INDICATED IN BOTH THE EQUATIONS AND THE VARIABLES, FOR EXAMPLE
11 (C1) 'DIFF(F,X,2)=SIN(X)+'DIFF(G,X);
12 (C2) 'DIFF(F,X)+X^2-F=2*'DIFF(G,X,2);
14 IS NOT IN THE PROPER FORMAT.  THE CORRECT WAY IS:
16 (C3) 'DIFF(F(X),X,2)=SIN(X)+'DIFF(G(X),X);
17 (C4) 'DIFF(F(X),X)+X^2-F(X)=2*'DIFF(G(X),X,2);
19 THE QUOTES ARE NOT NECESSARY SINCE DIFF WILL RETURN THE NOUN FORMS ANYWAY.
21 THE CALL IS THEN DESOLVE([D3,D4],[F(X),G(X)]);
23 IF INITIAL CONDITIONS AT 0 ARE KNOWN, THEY SHOULD BE SUPPLIED BEFORE
24 CALLING DESOLVE BY USING ATVALUE.
26                 EXAMPLE
28 (C5) 'DIFF(F(X),X)='DIFF(G(X),X)+SIN(X);
29                         D         D
30 (D5)                    -- F(X) = -- G(X) + SIN(X)
31                         DX        DX
33 (C6) 'DIFF(G(X),X,2)='DIFF(F(X),X)-COS(X);
34                          2
35                         D          D
36 (D6)                    --- G(X) = -- F(X) - COS(X)
37                           2        DX
38                         DX
40 (C7) ATVALUE('DIFF(G(X),X),X=0,A);
41 (D7)                                A
43 (C8) ATVALUE(F(X),X=0,1);
44 (D8)                                1
46 (C9) DESOLVE([D5,D6],[F(X),G(X)]);
48                    X                              X
49 (D9)   [F(X) = A %E  - A + 1, G(X) = COS(X) + A %E  - A + G(0) - 1]
51 /* VERIFICATION */
52 (C10) [D5,D6],D9,DIFF;
53                   X       X      X                X
54 (D10)        [A %E  = A %E , A %E  - COS(X) = A %E  - COS(X)]