REDUCE 3.4, 15-Jul-91 ...

1: 

 DESIR : solutions formelles d'equations differentielles
          lineaires homogenes au voisinage de zero, point 
          singulier regulier ou irregulier, ou point regulier

                Version  3.1  -  Septembre 1989 
                   Appel par desir();        


(DESIR)


off echo;


Premier exemple: utilisation interactive sur une equation simple

desir();                       %appel de DESIR

   ATTENTION : chaque donnee doit etre suivie de ; ou de $

 

                     *****  INTRODUCTION DES DONNEES  ***** 

 

  L' equation est  de la forme

      a(0)(x)d^0 + a(1)(x)d^1 + .... + a(n)(x)d^n = 0 

 ordre de l'equation ? 

  Donner les coefficients   a(j)(x), j = 0..n

a(0) = 1

a(1) = X

a(2) = X

        6
a(3) = X

  

correction ? ( oui; / non; )   

transformation ? (oui;/non;)  

nombre de termes desires pour la solution ?

 

LES 3 SOLUTIONS CALCULEES SONT LES SUIVANTES

 

 ==============

  SOLUTION No 1

 ==============

    1    4    1   3    2
X*(----*X  - ---*X  + X  - 2*X + 2)
    12        3

 

 ==============

  SOLUTION No 2

 ==============

 1          4    1          3           2               5    4
---*LOG(X)*X  - ---*LOG(X)*X  + LOG(X)*X  - LOG(X)*X - ----*X
 6               2                                      36

    1   3
 + ---*X  - X + 1
    4

 

 ==============

  SOLUTION No 3

 ==============

       4
 1/(4*X )  10   361   4    1   3    1   2
E        *X  *(-----*X  + ---*X  + ---*X  + X + 1)
                24         6        2

voulez-vous continuer ? 

'non;' : la liste des solutions calculees est affichee (sous

 forme generalisee).

'non$' : cette liste n'est pas affichee.

          6
{{{1,X,X,X },

             4       3        2
           XT  - 4*XT  + 12*XT  - 24*XT + 24
  {{{{0,1,-----------------------------------,1},{}}},
                          12

                       4                3                2
   {{{0,1,(6*LOG(XT)*XT  - 18*LOG(XT)*XT  + 36*LOG(XT)*XT

                                  4       3
            - 36*LOG(XT)*XT - 5*XT  + 9*XT  - 36*XT + 36)/36,0},{}}},

                       4       3        2
         1       361*XT  + 4*XT  + 12*XT  + 24*XT + 24
   {{{-------,1,---------------------------------------,10},{}}}}}}
           4                      24
       4*XT

solvalide(first ws,1,4);

                              4      3       2
                          X*(X  - 4*X  + 12*X  - 24*X + 24)
La solution numero 1 est -----------------------------------
                                         12

La partie reguliere du reste est de l'ordre de x**5

Si on reporte cette solution dans l'equation, le terme 

                             1   5
significatif du reste est : ---*X
                             2

  5      3       2
 X *(10*X  - 16*X  + 12*X + 1)
-------------------------------
               2

Le meme exemple en utilisation directe

lcoeff:={1,x,x,x**6};

                  6
LCOEFF := {1,X,X,X }

param:={};

PARAM := {}

on trdesir;             %obtention facultative d'une trace

Time: 4794 ms

sol:=delire(x,4,1,lcoeff,param);

0  -1  0  2

2  -1  4  1

f(0) = LAMBD*(LAMBD - 1)

        2  -1  4  1

0  -5  0  1

f(0) = LAMBD - 10

                  4       3        2
                XT  - 4*XT  + 12*XT  - 24*XT + 24
SOL := {{{{0,1,-----------------------------------,1},{}}},
                               12

                            4                3                2
        {{{0,1,(6*LOG(XT)*XT  - 18*LOG(XT)*XT  + 36*LOG(XT)*XT

                                       4       3
                 - 36*LOG(XT)*XT - 5*XT  + 9*XT  - 36*XT + 36)/36,0},

          {}}},

                            4       3        2
              1       361*XT  + 4*XT  + 12*XT  + 24*XT + 24
        {{{-------,1,---------------------------------------,10},{}}}
                4                      24
            4*XT

        }

showtime;                      %temps d'execution de 'delire'

Time: 2805 ms

1ieme solution :

    1    4    1   3    2
X*(----*X  - ---*X  + X  - 2*X + 2)
    12        3
0

2ieme solution :

 1          4    1          3           2               5    4
---*LOG(X)*X  - ---*LOG(X)*X  + LOG(X)*X  - LOG(X)*X - ----*X
 6               2                                      36

    1   3
 + ---*X  - X + 1
    4
0

3ieme solution :

       4
 1/(4*X )  10   361   4    1   3    1   2
E        *X  *(-----*X  + ---*X  + ---*X  + X + 1)
                24         6        2
0

solvalide({lcoeff,sol},2,4)$

                                4
                          1/(4*X )  10
La solution numero 3 est E        *X

   361   4    1   3    1   2
*(-----*X  + ---*X  + ---*X  + X + 1)
   24         6        2

La partie reguliere du reste est de l'ordre de x**10

Si on reporte cette solution dans l'equation, le terme 

                                             4
                                2137   1/(4*X )  10
significatif du reste est :  - ------*E        *X
                                 24

solvalide({lcoeff,sol},3,4)$

                                4
                          1/(4*X )  10
La solution numero 3 est E        *X

   361   4    1   3    1   2
*(-----*X  + ---*X  + ---*X  + X + 1)
   24         6        2

La partie reguliere du reste est de l'ordre de x**10

Si on reporte cette solution dans l'equation, le terme 

                                             4
                                2137   1/(4*X )  10
significatif du reste est :  - ------*E        *X
                                 24

off trdesir;

Deuxieme exemple : utilisation interactive, parametres et

transformations

desir();

   ATTENTION : chaque donnee doit etre suivie de ; ou de $

 

                     *****  INTRODUCTION DES DONNEES  ***** 

 

  L' equation est  de la forme

      a(0)(x)d^0 + a(1)(x)d^1 + .... + a(n)(x)d^n = 0 

 ordre de l'equation ? 

  Donner les coefficients   a(j)(x), j = 0..n

        2     2
a(0) = X  - NU

a(1) = X

        2
a(2) = X

  

correction ? ( oui; / non; )   

nombre de parametres ?  

donner ce parametre :

transformation ? (oui;/non;)  

nombre de termes desires pour la solution ?

 

LES 2 SOLUTIONS CALCULEES SONT LES SUIVANTES

 

 ==============

  SOLUTION No 1

 ==============

   - NU   1   2
 X     *(---*X  + NU - 1)
          4
--------------------------
          NU - 1

Si : 

 - 2*NU  non entier

     - NU   2   2
 2*X     *NU *(X  + 4*NU - 4)
------------------------------
            NU - 1

Si : 

 - 2*NU  entier positif

    NU   2      2
 2*X  *NU *( - X  + 4*NU + 4)
------------------------------
            NU + 1

Si : 

 - 2*NU  entier negatif

  NU      1   2
 X  *( - ---*X  + NU + 1)
          4
--------------------------
          NU + 1

Si : 

 - 2*NU  nul

 

 ==============

  SOLUTION No 2

 ==============

  NU      1   2
 X  *( - ---*X  + NU + 1)
          4
--------------------------
          NU + 1

Si : 

 - 2*NU  non entier

  NU      1          2       1          2            2
(X  *( - ---*LOG(X)*X *NU - ---*LOG(X)*X  + LOG(X)*NU  + 2*LOG(X)*NU
          4                  4

                   1   2       1   2      2
       + LOG(X) + ---*X *NU + ---*X ))/(NU  + 2*NU + 1)
                   8           4

Si : 

 - 2*NU  nul

voulez-vous continuer ? 

'non;' : la liste des solutions calculees est affichee (sous

 forme generalisee).

'non$' : cette liste n'est pas affichee.

derivation : 1; 

changement de variable : 2; 

changement de fonction inconnue : 3;

substitution : 4;

valeur de x en fonction de la nouvelle variable v ? 

           2   2
a(0) =  - V *NU  + 1

        3
a(1) = V

        4
a(2) = V

transformation ? (oui;/non;)  

nombre de termes desires pour la solution ?

 

LES 2 SOLUTIONS CALCULEES SONT LES SUIVANTES

 

 ==============

  SOLUTION No 1

 ==============

          - I/X   1   -1     2    1   -1      1   2   4    5    2   2
SQRT(X)*E      *(---*I  *X*NU  - ---*I  *X - ---*X *NU  + ----*X *NU
                  2               8           8            16

                      9    2
                  - -----*X  + 1)
                     128

 

 ==============

  SOLUTION No 2

 ==============

         I/X      1   -1     2    1   -1      1   2   4    5    2   2
SQRT(X)*E   *( - ---*I  *X*NU  + ---*I  *X - ---*X *NU  + ----*X *NU
                  2               8           8            16

                   9    2
               - -----*X  + 1)
                  128

voulez-vous continuer ? 

'non;' : la liste des solutions calculees est affichee (sous

 forme generalisee).

'non$' : cette liste n'est pas affichee.

sol1:=first sol$        %solutions au voisinage de 0

sol2:=second sol$       %solutions au voisinage de l'infini

solvalide(sol1,1,2)$

presence de solutions conditionnelles :

 cette procedure ne peut pas etre appelee.

solvalide(sol2,1,2)$

La solution numero 1 est (SQRT(X)

              2   4         2   2        2                  2
   *( - 16*I*X *NU  + 40*I*X *NU  - 9*I*X  + 128*I + 64*X*NU  - 16*X)

           I/X
   )/(128*E   *I)

                                                   9
La partie reguliere du reste est de l'ordre de x**---
                                                   2

Si on reporte cette solution dans l'equation, le terme 

significatif du reste est : 

  1           4    6    35    4    259    2    225
 ---*SQRT(X)*X *(NU  - ----*NU  + -----*NU  - -----)
  8                     4          16          64
-----------------------------------------------------
                         I/X
                        E

Remarque : la verification de la validite des solutions est possible

malgre la presence d'un parametre (pas de condition).

standsol(sol1);                %=sol1...sans interet!

   2     2    2
{{X  - NU ,X,X },

 {},

            2
          XT  + 4*NU - 4
 {{{{0,1,----------------, - NU},
            4*(NU - 1)

    { - 2*NU,NONENT,, sauf :,1}},

              2    2
          2*NU *(XT  + 4*NU - 4)
   {{0,1,------------------------, - NU},
                  NU - 1

    { - 2*NU,ENTPOS}},

              2       2
          2*NU *( - XT  + 4*NU + 4)
   {{0,1,---------------------------,NU},
                   NU + 1

    { - 2*NU,ENTNEG}},

               2
           - XT  + 4*NU + 4
   {{0,1,-------------------,NU},
             4*(NU + 1)

    { - 2*NU,ENTNUL}}},

               2
           - XT  + 4*NU + 4
  {{{0,1,-------------------,NU},
             4*(NU + 1)

    { - 2*NU,NONENT,, sauf :,1}},

   {{0,

     1,

                   2      4               2      3
     ( - LOG(XT)*XT *LAMBD  + 4*LOG(XT)*XT *LAMBD *NU

                     2      3               2      2   2
       - 4*LOG(XT)*XT *LAMBD  - 2*LOG(XT)*XT *LAMBD *NU

                      2      2                  2      2
       + 16*LOG(XT)*XT *LAMBD *NU - 4*LOG(XT)*XT *LAMBD

                     2         3                2         2
       - 4*LOG(XT)*XT *LAMBD*NU  - 12*LOG(XT)*XT *LAMBD*NU

                      2                        2   4
       + 16*LOG(XT)*XT *LAMBD*NU + 3*LOG(XT)*XT *NU

                      2   2                6                  5
       - 12*LOG(XT)*XT *NU  + LOG(XT)*LAMBD  - 4*LOG(XT)*LAMBD *NU

                        5                4   2                   4
       + 8*LOG(XT)*LAMBD  + LOG(XT)*LAMBD *NU  - 32*LOG(XT)*LAMBD *NU

                         4                  3   3
       + 24*LOG(XT)*LAMBD  + 8*LOG(XT)*LAMBD *NU

                         3   2                   3
       + 16*LOG(XT)*LAMBD *NU  - 96*LOG(XT)*LAMBD *NU

                         3                  2   4
       + 32*LOG(XT)*LAMBD  - 5*LOG(XT)*LAMBD *NU

                         2   3                   2   2
       + 32*LOG(XT)*LAMBD *NU  + 64*LOG(XT)*LAMBD *NU

                          2                      2
       - 128*LOG(XT)*LAMBD *NU + 16*LOG(XT)*LAMBD

                           5                      4
       - 4*LOG(XT)*LAMBD*NU  - 24*LOG(XT)*LAMBD*NU

                            3                      2
       + 32*LOG(XT)*LAMBD*NU  + 96*LOG(XT)*LAMBD*NU

                                           6                4
       - 64*LOG(XT)*LAMBD*NU + 3*LOG(XT)*NU  - 24*LOG(XT)*NU

                      2       2      2          2      2
       + 48*LOG(XT)*NU  - 4*XT *LAMBD *NU - 4*XT *LAMBD

             2         2       2             2   3        2   2
       + 8*XT *LAMBD*NU  - 8*XT *LAMBD - 4*XT *NU  + 12*XT *NU

              2             5          4              4
       + 16*XT *NU + 2*LAMBD  - 4*LAMBD *NU + 16*LAMBD

                3   2           3              3          2   3
       - 4*LAMBD *NU  - 32*LAMBD *NU + 48*LAMBD  + 8*LAMBD *NU

                 2   2           2              2             4
       - 16*LAMBD *NU  - 96*LAMBD *NU + 64*LAMBD  + 2*LAMBD*NU

                    3              2
       + 32*LAMBD*NU  - 16*LAMBD*NU  - 128*LAMBD*NU + 32*LAMBD

             5        3                4          3          2   2
       - 4*NU  + 32*NU  - 64*NU)/(LAMBD  + 8*LAMBD  - 2*LAMBD *NU

                   2             2                4       2
         + 24*LAMBD  - 8*LAMBD*NU  + 32*LAMBD + NU  - 8*NU  + 16),

     NU},

    { - 2*NU,ENTPOS}},

   {{0,

     1,

                   2      4               2      3
     ( - LOG(XT)*XT *LAMBD  - 4*LOG(XT)*XT *LAMBD *NU

                     2      3               2      2   2
       - 4*LOG(XT)*XT *LAMBD  - 2*LOG(XT)*XT *LAMBD *NU

                      2      2                  2      2
       - 16*LOG(XT)*XT *LAMBD *NU - 4*LOG(XT)*XT *LAMBD

                     2         3                2         2
       + 4*LOG(XT)*XT *LAMBD*NU  - 12*LOG(XT)*XT *LAMBD*NU

                      2                        2   4
       - 16*LOG(XT)*XT *LAMBD*NU + 3*LOG(XT)*XT *NU

                      2   2                6                  5
       - 12*LOG(XT)*XT *NU  + LOG(XT)*LAMBD  + 4*LOG(XT)*LAMBD *NU

                        5                4   2                   4
       + 8*LOG(XT)*LAMBD  + LOG(XT)*LAMBD *NU  + 32*LOG(XT)*LAMBD *NU

                         4                  3   3
       + 24*LOG(XT)*LAMBD  - 8*LOG(XT)*LAMBD *NU

                         3   2                   3
       + 16*LOG(XT)*LAMBD *NU  + 96*LOG(XT)*LAMBD *NU

                         3                  2   4
       + 32*LOG(XT)*LAMBD  - 5*LOG(XT)*LAMBD *NU

                         2   3                   2   2
       - 32*LOG(XT)*LAMBD *NU  + 64*LOG(XT)*LAMBD *NU

                          2                      2
       + 128*LOG(XT)*LAMBD *NU + 16*LOG(XT)*LAMBD

                           5                      4
       + 4*LOG(XT)*LAMBD*NU  - 24*LOG(XT)*LAMBD*NU

                            3                      2
       - 32*LOG(XT)*LAMBD*NU  + 96*LOG(XT)*LAMBD*NU

                                           6                4
       + 64*LOG(XT)*LAMBD*NU + 3*LOG(XT)*NU  - 24*LOG(XT)*NU

                      2       2      2          2      2
       + 48*LOG(XT)*NU  + 4*XT *LAMBD *NU - 4*XT *LAMBD

             2         2       2             2   3        2   2
       + 8*XT *LAMBD*NU  - 8*XT *LAMBD + 4*XT *NU  + 12*XT *NU

              2             5          4              4
       - 16*XT *NU + 2*LAMBD  + 4*LAMBD *NU + 16*LAMBD

                3   2           3              3          2   3
       - 4*LAMBD *NU  + 32*LAMBD *NU + 48*LAMBD  - 8*LAMBD *NU

                 2   2           2              2             4
       - 16*LAMBD *NU  + 96*LAMBD *NU + 64*LAMBD  + 2*LAMBD*NU

                    3              2
       - 32*LAMBD*NU  - 16*LAMBD*NU  + 128*LAMBD*NU + 32*LAMBD

             5        3                4          3          2   2
       + 4*NU  - 32*NU  + 64*NU)/(LAMBD  + 8*LAMBD  - 2*LAMBD *NU

                   2             2                4       2
         + 24*LAMBD  - 8*LAMBD*NU  + 32*LAMBD + NU  - 8*NU  + 16),

      - NU},

    { - 2*NU,ENTNEG}},

   {{0,

     1,

                     2                  2               2
     ( - 2*LOG(XT)*XT *NU - 2*LOG(XT)*XT  + 8*LOG(XT)*NU

                                       2          2
       + 16*LOG(XT)*NU + 8*LOG(XT) + XT *NU + 2*XT )/(8

            2
        *(NU  + 2*NU + 1)),

     NU},

    { - 2*NU,ENTNUL}}}}}

standsol(sol2);      %solutions retournees sous forme standard.

      2   2      3  4
{{ - X *NU  + 1,X ,X },

 {(SQRT(X)

              2   4         2   2        2                  2
   *( - 16*I*X *NU  + 40*I*X *NU  - 9*I*X  + 128*I + 64*X*NU  - 16*X)

           I/X
   )/(128*E   *I),

            I/X
  (SQRT(X)*E

              2   4         2   2        2                  2
   *( - 16*I*X *NU  + 40*I*X *NU  - 9*I*X  + 128*I - 64*X*NU  + 16*X)

   )/(128*I)},

 {}}

Pour revoir les solutions au voisinage de 0 :

for each elt in second sol1 do

          <<j:=j+1;write j,'ieme solution';sorsol(elt);>>;

1ieme solution

  2
 X  + 4*NU - 4
----------------
    NU
 4*X  *(NU - 1)

Si : 

 - 2*NU  non entier

     2   2
 2*NU *(X  + 4*NU - 4)
-----------------------
      NU
     X  *(NU - 1)

Si : 

 - 2*NU  entier positif

    NU   2      2
 2*X  *NU *( - X  + 4*NU + 4)
------------------------------
            NU + 1

Si : 

 - 2*NU  entier negatif

  NU      2
 X  *( - X  + 4*NU + 4)
------------------------
       4*(NU + 1)

Si : 

 - 2*NU  nul

2ieme solution

  NU      2
 X  *( - X  + 4*NU + 4)
------------------------
       4*(NU + 1)

Si : 

 - 2*NU  non entier

  NU               2                2              2
(X  *( - 2*LOG(X)*X *NU - 2*LOG(X)*X  + 8*LOG(X)*NU  + 16*LOG(X)*NU

                     2         2         2
       + 8*LOG(X) + X *NU + 2*X ))/(8*(NU  + 2*NU + 1))

Si : 

 - 2*NU  nul

Evaluation des solns au voisinage de 0 pour une valeur particuliere

du parametre :

sorparam(sol1,{nu});%evaluation des solutions au voisinage de 0

                 %pour une valeur particuliere du parametre

                 %nu = 1

                 %ecriture et retour des solutions sous forme

                 %standard

donner la valeur du parametre NU

 

 ==============

  SOLUTION No 1

 ==============

       2
X*( - X  + 8)

 

 ==============

  SOLUTION No 2

 ==============

            2
  - LOG(X)*X  + 2
------------------
        X

   2        2
{{X  - 1,X,X },

                            2
         2        - LOG(X)*X  + 2
 {X*( - X  + 8),------------------}}
                        X

solparam(sol1,{nu},{1});

   2        2
{{X  - 1,X,X },

              2
 {{{{0,1, - XT  + 8,1},{}}},

                      2
  {{{0,1, - LOG(XT)*XT  + 2,-1},{}}}}}

Meme fonction avec retour des solutions sous forme generalisee,

ce qui permet d'enchainer :

solvalide(ws,1,2)$

                                2
La solution numero 1 est X*( - X  + 8)

La partie reguliere du reste est de l'ordre de x**4

Si on reporte cette solution dans l'equation, le terme 

                                5
significatif du reste est :  - X

L'exemple suivant a ete cree specialement pour tester l'algorithme

et utiliser un grand nombre de procedures :

LCOEFF := {X + 1,

              2
           2*X *(X + 1),

            4
           X ,

               7
            5*X
           ------,
             2

            10
           X  }

PARAM := {}

Time: 28968 ms

sol:=delire(x,4,1,lcoeff,param);

Time: 27982 ms

1ieme solution :

 (SQRT(X)*SQRT(6) + 1)/X  -4      1330595            - 1/2
E                       *X  *( - ---------*SQRT(X)*6      *X
                                    96

       173            - 1/2    174069763   2    9173
    - -----*SQRT(X)*6       + -----------*X  + ------*X + 1)
        2                        4608            16
0

2ieme solution :

 ( - SQRT(X)*SQRT(6) + 1)/X  -4   1330595            - 1/2
E                          *X  *(---------*SQRT(X)*6      *X
                                    96

       173            - 1/2    174069763   2    9173
    + -----*SQRT(X)*6       + -----------*X  + ------*X + 1)
        2                        4608            16
0

3ieme solution :

                           2
 13/27  ( - 32*X + 3)/(12*X )  14   90412648939865456   4
X     *E                     *X  *(-------------------*X
                                       10460353203

       10833178373456   3    353835104   2    25336
    + ----------------*X  + -----------*X  + -------*X + 1)
          43046721             59049           243
0

4ieme solution :

                     2
 1/54  (2*X + 3)/(3*X )  10   863316799848061   4    48578095525   3
X    *E                *X  *(-----------------*X  - -------------*X
                               1338925209984          344373768

       7318955   2    1333
    + ---------*X  - ------*X + 1)
       236196         243
0

                          (SQRT(X)*SQRT(6) + 1)/X  -4
La solution numero 1 est E                       *X  *(

       1330595            - 1/2      173            - 1/2
    - ---------*SQRT(X)*6      *X - -----*SQRT(X)*6
         96                           2

       174069763   2    9173
    + -----------*X  + ------*X + 1)
         4608            16

                                                      3
La partie reguliere du reste est de l'ordre de x** - ---
                                                      2

Si on reporte cette solution dans l'equation, le terme 

                                6740979385   (SQRT(X)*SQRT(6) + 1)/X
significatif du reste est :  - ------------*E
                                   6144

                                                    2
                          13/27  ( - 32*X + 3)/(12*X )  14
La solution numero 3 est X     *E                     *X  *(

    90412648939865456   4    10833178373456   3    353835104   2
   -------------------*X  + ----------------*X  + -----------*X
       10460353203              43046721             59049

       25336
    + -------*X + 1)
        243

                                                   526
La partie reguliere du reste est de l'ordre de x**-----
                                                   27

Si on reporte cette solution dans l'equation, le terme 

significatif du reste est : 

                                                       2
    409426546365146093644   13/27  ( - 32/3*X + 1)/(4*X )  19
 - -----------------------*X     *E                      *X
        847288609443


Quitting
