Application Center - Maplesoft

App Preview:

Équations différentielles ordinaires

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

eq_diff_ordre1.mw

[Inserted Image]quations diffrentielles ordinaires
              (d'ordre 1 et de degr 1)

Pierre Lantagne (juin 2001)

Collge de Maisonneuve

plantag@edu.cmaisonneuve.qc.ca

http://math.cmaisonneuve.qc.ca/plantagne

> restart;

Macro-commande dsolve

Solution gnrale

Une quation diffrentielle est une quation qui comporte des drives. L'quation est dite quation diffrentielle ordinaire (EDO) s'il n'y a qu'une seule variable indpendante et que les drives sont exprimes par rapport cette variable. L'ordre d'une EDO est celui de la drive de l'ordre le plus lev apparaissant dans l'quation et le degr d'une EDO est le degr de la drive de l'ordre le plus lev.

Dans cette feuille Maple, on ne traitera que des quations diffrentielles ordinaires d'ordre 1 et de degr 1 dont la forme normale est

d*y/(d*x) = f(x, y)

Dans les manuels de mathmatiques, la forme diffrentielle d'une quation diffrentielle ordinaire d'ordre 1 de degr 1

M(x, y)*dx+N(x, y)*dy = 0

est utile pour classifier de telles quations.

La macro-commande dsolve de la bibliothque de base sera employe pour trouver de manire analytique la solution gnrale. (Rappelons que, malgr son nom, la solution gnrale peut ne pas contenir toutes les solutions particulires d'une quation diffrentielle.)

Soit l'quation diffrentielle suivante rsoudre.

x*dx-y*dy = 0

Pour bien se faire comprendre par l'valuateur, il faudra lui communiquer l'quation dans une criture formule en termes de drives plutt qu'en termes de diffrentielles. Reformule, l'quation diffrentielle rsoudre est donc  x-y*dy/dx = 0 . De plus, il sera ncessaire d'utiliser la syntaxe fonctionnelle pour communiquer l'valuateur laquelle des deux variables est dsigne variable dpendante.

La formule drive peut tre nonce soit avec l'oprateur de drivation D, soit avec la macro-commande diff.

Nommons EDO l'quation diffrentielle x-y*dy/dx = 0 .

Utiliser la macro-commande diff requiert 14 caractres taper.

> EDO:=x-y(x)*diff(y(x),x)=0;

EDO := x-y(x)*(diff(y(x), x)) = 0

Tandis que l'oprateur D en requiert 9.

> EDO:=x-y(x)*D(y)(x)=0;

EDO := x-y(x)*D(y)(x) = 0

>

La macro-commande odeadvisor de l'extension DEtools donne pour rsultat le type d'quation diffrentielle reconnue par l'valuateur.

> with(DEtools, odeadvisor);

[odeadvisor]

> odeadvisor(EDO);

[_separable]

l'aide de la macro-commande dsolve, rsolvons cette quation diffrentielle variables sparables.

> Sol:=dsolve(EDO,y(x));

Sol := y(x) = (x^2+_C1)^(1/2), y(x) = -(x^2+_C1)^(1/2)

>

Par dfaut et sous certaines conditions, l'valuateur s'efforcera de formuler la solution gnrale de manire explicite. Par contre, il est possible d'imposer ponctuellement l'afficheur la formulation implicite de la solution gnrale qui a t trouve en prcisant, en option, l'attribut implicit.

> Sol:=dsolve(EDO,y(x),implicit);

Sol := y(x)^2-x^2-_C1 = 0

>

Pour une formulation plus habituelle de la rponse, reformulons Sol en termes de y et de C.

> Sol_generale:=subs([y(x)=y,_C1=C],Sol);

Sol_generale := y^2-x^2-C = 0

Durant les "efforts" de rsolution dploys par l'valuateur, on peut tre tenu au courant des diffrentes tentatives de dsolve dans la recherche d'une mthode pouvant tre applique pour la rsolution analytique de l'quation en cours. Il suffit d'initialiser la variable infolevel comme suit:

> infolevel[dsolve]:=3;

infolevel[dsolve] := 3

Rsolvons de nouveau l'quation EDO pour voir.

> Sol:=dsolve(EDO,implicit);

`Methods for first order ODEs:`
`--- Trying classification methods ---`

`trying a quadrature`

`trying 1st order linear`

`trying Bernoulli`

`<- Bernoulli successful`

Sol := y(x)^2-x^2-_C1 = 0

>

Pour rtablir la "discrtion" de l'valuateur, il faut taper:

> infolevel[dsolve]:=0;

infolevel[dsolve] := 0

>

Parfois, la rsolution explicite peut faire apparatre certaines fonctions analytiques inconnues du niveau collgial. Soit  l'quation diffrentielle variables sparables dy/dx = 3*y/(2*y^2+1) . La solution gnrale est trs facile trouver en rsolvant papier-crayon . Voyons le rsultat que donnera l'valuateur dans la formulation explicite de la solution qu'il trouvera.

> EDO:=Diff(y(x),x)=3*y(x)/(2*y(x)^2+1);

EDO := Diff(y(x), x) = 3*y(x)/(2*y(x)^2+1)

> Sol:=dsolve(EDO,y(x));

Sol := y(x) = exp(-1/2*LambertW(2*exp(6*x+6*_C1))+3*x+3*_C1)

>

Rsolvons de nouveau mais en spcifiant l'option implicit.

> Sol:=dsolve(EDO,y(x),implicit);

Sol := x-1/3*y(x)^2-1/3*ln(y(x))+_C1 = 0

Reformulons Sol en termes de y et de C.

> Sol_generale:=subs([y(x)=y,_C1=C],Sol);

Sol_generale := x-1/3*y^2-1/3*ln(y)+C = 0

>

Solution avec condition initiale

La solution gnrale d'une quation diffrentielle d'ordre n contient n constantes arbitraires et indpendantes. Une solution particulire est une solution dans laquelle les constantes sont dtermines gnralement l'aide d'une ou de plusieurs hypothses sur y, y', y'', ... Ces hypothses sont appeles conditions initiales.

Dans le cas des quations diffrentielles d'ordre 1 et de degr 1, une solution particulire s'obtient en spcifiant une valeur de la constante C. Par exemple, en posant C = -5 dans la solution gnrale y^2-x^2-C = 0 de l'quation diffrentielle x-y*dy/dx = 0 , on obtient la solution particulire y^2-x^2+5 = 0 .

Il est possible aussi d'isoler des solutions particulires en prcisant des conditions initiales. Par exemple, soit la condition initiale prcisant que y = 2 quand x = 3 , c'est--dire y(3) = 2 .

Rappelons-nous l'quation rsoudre.

> EDO:=x-y(x)*diff(y(x),x)=0;

EDO := x-y(x)*(diff(y(x), x)) = 0

Rsolvons avec dsolve.

> Sol:=dsolve(EDO,y(x),implicit);

Sol := y(x)^2-x^2-_C1 = 0

Reformulons de manire habituelle ce rsultat.

> Sol_generale:=subs([y(x)=y,_C1=C],Sol);

Sol_generale := y^2-x^2-C = 0

Obtenons la valeur de la constante C impose par la condition initiale y(3) = 2 .

> C:=solve(subs([x=3,y=2],Sol_generale),C);

C := -5

Puisque que C est maintenant initialise la valeur 5, on obtient alors directement la solution particulire correspondante.

> Sol_particuliere:=Sol_generale;

Sol_particuliere := y^2-x^2+5 = 0

Rendons nouveau la variable C libre.

> C:='C':

>

La condition initiale y(3) = 2 a dtermine C = -5 . Il y a donc une correspondance entre la condition initiale y(3) = 2 et la valeur 5 de la constante C.

La macro-commande dsolve permet galement la rsolution d'une quation diffrentielle avec conditions initiales. Rsolvons de nouveau l'quation x-y*dy/dx = 0 mais cette fois-ci, trouvons la solution particulire satisfaisant la condition initiale y(3) = 2 .

Le premier argument de dsolve, entre accolades, devra toujours spcifier l'quation diffrentielle rsoudre accompagne de toutes les hypothses sur y et/ou ses drives. (Voir dsolve,ics )

> Sol_particuliere:=dsolve({EDO,y(3)=2},y(x));

Sol_particuliere := y(x) = (x^2-5)^(1/2)

En rsolvant papier-crayon cette quation, la solution particulire est plutt formule par  y^2-x^2+5 = 0 . Or, l'valuateur, au lieu de produire la solution particulire implicite y^2-x^2+5 = 0 , a donn pour rsultat l'une des formulations explicites de  y^2-x^2-C_1 = 0 satisfaisant la condition initiale y(3) = 2 , c'est--dire  y = sqrt(x^2-5) . Les trois conditions initiales y(-3) = 2, y(3)=-2 et y(-3) = -2 amne galement l'une ou l'autre des solutions explicites obtenues de la solution gnrale avec la constante gale -5 .

> Sol_particuliere_2:=dsolve({EDO,y(-3)=2},y(x));
Sol_particuliere_3:=dsolve({EDO,y(3)=-2},y(x));

Sol_particuliere_4:=dsolve({EDO,y(-3)=-2},y(x));

Sol_particuliere_2 := y(x) = (x^2-5)^(1/2)

Sol_particuliere_3 := y(x) = -(x^2-5)^(1/2)

Sol_particuliere_4 := y(x) = -(x^2-5)^(1/2)

>

Par dfaut et sous certaines conditions, la macro-commande dsolve rsoud explicitement. C'est ce qui explique le rsultat prcdent. En somme, il faudra donc tre circonspect lorsqu'il s'agira d'obtenir une solution particulire avec Maple. Heureusement, que dsolve est "sensible" la variable d'environnement  _EnvExplicit. Trouvons de nouveau la solution particulire en initialisant au pralable la variable _EnvExplicit_   false.

Initialisons de nouveau la session Maple avec restart.

> restart;

> _EnvExplicit:=false:

> EDO:=x-y(x)*D(y)(x)=0;

EDO := x-y(x)*D(y)(x) = 0

> Sol_particuliere:=dsolve({EDO,y(3)=2},y(x));

Sol_particuliere := y(x) = RootOf(_Z^2-x^2+5)

En traduisant par y^2  la variable _Z^2 cre par Maple, on a donc la solution particulire implicite y^2-x^2+5 = 0 formule en terme de la macro-commande RootOf.

Montrons, avec la macro-commande allvalues, que la formulation explicite de l'quation  y(x) = RootOf(_Z^2-x^2+5) correspond effectivement aux deux formulations explicites de la solution particulire y^2-x^2+5 = 0 .

> ### WARNING: allvalues now returns a list of symbolic values instead of a sequence of lists of numeric values
allvalues(Sol_particuliere);

y(x) = (x^2-5)^(1/2), y(x) = -(x^2-5)^(1/2)

>

La macro-commande odetest de la bibliothque de base permet la vrification des solutions implicites et explicites qui ont t obtenus avec dsolve. Si l'quation est vrifie, odetest donnera comme rsultat la valeur 0. Vrifions d'abord la solution particulire implicite.

> odetest(Sol_particuliere,EDO);

0

>

Contrlons maintenant les deux solutions particulires explicitent. l'aide de la macro-commmande map, appliquons odetest sur chacune des deux solutions particulires explicites.

> ### WARNING: allvalues now returns a list of symbolic values instead of a sequence of lists of numeric values
map(odetest,[allvalues(Sol_particuliere)],EDO);

[0, 0]

Les deux solutions particulires explicites vrifient donc l'quation diffrentielle EDO.

>

Interprtation graphique

La solution gnrale d'une quation diffrentielle consiste en une famille de courbes qui satisfait l'quation diffrentielle donne et chacune de ces courbes reprsente une solution particulire. Illustrons quelques solutions particulires implicites de l'quation diffrentielle  x-y*dy/dx = 0 .

Afin de nous rappeler la rsolution en cours, excutons de nouveau les trois requtes suivantes.

> EDO:=x-y(x)*D(y)(x)=0;

EDO := x-y(x)*D(y)(x) = 0

On doit rsoudre EDO de faon implicite. Initialisons  _EnvExplicit avec la valeur de vrit false.

> _EnvExplicit:=false;

_EnvExplicit := false

> Sol:=dsolve(EDO);

Sol := y(x)^2-x^2-_C1 = 0

Reformulons Sol en termes de y et de C.

> Sol_generale:=subs([y(x)=y,_C1=C],Sol);

Sol_generale := y^2-x^2-C = 0

Maintenant, traons quelques solutions particulires de cette famille avec _C1 = -8 , -5, 5, 15.

Puisque chaque solution particulire dfinit y implicitement comme fonction de x, employons la macro-commande impliciplot de l'extension plots.

> with(plots,implicitplot);

[implicitplot]

Initialisons la premire valeur de C et traons implicitement l'quation Sol_generale.

> C:=-8:
Courbe1:=implicitplot(Sol_generale,x=-5..5,y=-5..5,color=orange):

Courbe1;

[Plot]

>

On pourrait trs bien crer les trois autres courbes demandes (avec C = -5, 5 et 15) de cette faon et raliser ensuite dans un mme graphique la superposition de ces quatre tracs. Mais, pour plus d'efficacit, automatisons cette tche rptitive. La boucle suivante va faciliter la cration des quatre structures graphiques correspondant aux quatre valeurs de C retenues. En Maple V, l'oprateur de concatnation est le point . tandis qu' partir de Maple 6, cet oprateur est les deux barres verticales || .

Crons d'abord la liste des valeurs que la constante C prendra.

> Valeurs_de_C:=[-8,-5,5,15];

Valeurs_de_C := [-8, -5, 5, 15]

Ensuite, avec une boucle, crons les quatre tracs.

> for i from 1 to nops(Valeurs_de_C) do
C:=Valeurs_de_C[i];

Courbe||i:= implicitplot(Sol_generale,x=-5..5,y=-5..5,color=orange,thickness=2);

od:

C:='C':    # Pour rendre C libre

i:='i':    # Pour rendre i libre

l'aide de la macro-commande display de l'extension plots, affichons la superposition de ces quatres tracs.

> with(plots,display):

> Famille:=display(Courbe||(1..nops(Valeurs_de_C)),scaling=constrained):
Famille;

[Plot]

>

On peut trs bien employer la macro-commande contourplot de l'extension plots pour raliser plus directement la superposition de ces quatres tracs. En effet, la solution gnrale peut, d'un certain point de vue, tre considre comme une fonction F de deux variables dfinit par F(x, y) = y^2-x^2 .

> Formule:=solve(Sol_generale,C);

Formule := y^2-x^2

> with(plots,contourplot):

> Famille:=contourplot(Formule,x=-5..5,y=-5..5,grid=[70,70],
                                           contours=Valeurs_de_C,color=orange,thickness=2):

> display(Famille,axes=normal,scaling=constrained);

[Plot]

>

Si vous tes un tantinet patient (environ 60s avec PII, 400Mhz), vous pouvez mme mettre un peu de couleurs en employant contourplot.

> Famille:=contourplot(Formule,x=-5..5,y=-5..5,grid=[70,70],thickness=2,
                                   contours=Valeurs_de_C,coloring=[yellow,pink],filled=true):

> display(Famille,axes=normal,scaling=constrained);

[Plot]

>

Pour mettre en vidence une solution particulire, par exemple correspondant C = -1 , il suffit de tracer sparment cette solution particulire puis de superposer son trac avec celui de la famille.

> C:=-1:
Sol_particuliere:=implicitplot(Sol_generale,x=-5..5,y=-5..5,

                 color=magenta,thickness=3):

C:='C':   # Pour rendre C libre

> display([Sol_particuliere,Famille],scaling=constrained);

[Plot]

>

Champ des lments de contact

Une quation diffrentielle ordinaire du premier ordre et du premier degr est une quation de la forme dy/dx = f(x, y) .  En se rappelant l'interprtation graphique de dy/dx ,  f(x,y) est donc une formule donnant la pente de la tangente la courbe solution passant par le point (x,y). Ainsi, l'quation diffrentielle x-y*dy/dx = 0 (de manire quivalente dy/dx = x/y ) peut tre visualise par un graphique appel champ des lments de contact.

Chaque lment de ce champ est un petit segment de droite centr au point (x[0], y[0] ) d'orientation f(x[0], y[0] ).

Ainsi, pour l'quation diffrentielle  dy/dx = x/y , au point (2,1), la pente de la tangente la courbe de la solution particulire passant par ce point est  dy/dx = 2 .  Au point (2,2) la pente de la tangente la courbe de la solution particulire passant par ce point est 1 . Dans le premier cas, on illustre le rsultat par un petit segment de droite centr en (2,1) de pente 2 et, dans le second cas, par un autre segment de droite centr en (2,2) de pente 1 . En rptant ce processus avec un certain quadrillage de couples (x,y) rgulirement espac, on obtient ce qu'on appelle un champ d'lments de contact, parfois traduit littralement de l'anglais par champ de pentes.

La macro-commande dfieldplot de l'extension  DEtools permet le trac d'un champ d'lments de contact. L'extension DEtools impose la formulation fonctionnelle de la variable dpendante. Dans le cas d'une fonction de deux variables x et y, si la variable y est dsigne comme dpendante, on doit donc l'noncer dans les requtes avec la syntaxe fonctionnelle y(x) .

> with(DEtools,dfieldplot);

[dfieldplot]

> Champ:=dfieldplot(EDO,[y(x)],x=-6..6,y=-6..6,
      arrows=line,dirgrid=[20,20],color=orange,

      scaling=constrained):

> Champ;

[Plot]

>

On peut galement reprsenter dans un champ d'lments de contact, des courbes appeles isoclines ( du grec iso qui signifie mme et du latin clinare qui signifie pencher). Les isoclines sont des courbes le long desquelles les lments de contact ont une direction ( une inclinaison ) donne.

Superposer, dans le champ d'lments de contact prcdent, les isoclines de pente  -3, 1/3 et 2.

Pour obtenir de meilleurs trac, traons plutt les isoclines avec la macro-commande plot en traant y = x/Pentes  au lieu de tracer des quations de la forme Pentes = x/y  avec la macro-commande implicitplot car y peut tre explicite de manire unique en termes de x.

> Pentes:=[-3,1/3,2];

Pentes := [-3, 1/3, 2]

> for i from 1 to nops(Pentes) do
isocline||i:=plot([x,x/Pentes[i]],x=-6..6,thickness=2,color=navy):

od:

i:='i':   # Pour rendre i libre

> display({isocline||(1..nops(Pentes)),Champ},view=[-6..6,-6..6],title="Isoclines d'quations x/y=Pentes");

[Plot]

>

L'intrt d'un champ d'lments de contact apparat clairement avec l'usage de l'ordinateur. Que l'quation diffrentielle possde ou non une solution analytique, ce type de trac permet de visualiser les trajectoires des courbes solution d'une quation diffrentielle.

Superposons au champ d'lments de contact prcdent, les solutions particulires correspondant aux conditions initiales donnant C =  -8 , -5 , 5 et 15.

> display([Famille,Champ],title="Solutions particulires de x-y*dy/dx = 0",titlefont=[TIMES,ROMAN,12]);

[Plot]

>

La macro-commande DEplot de l'extension DEtools permet automatiquement la superposition du trac d'un champ d'lments de contact avec les tracs des solutions particulires.

> with(DEtools,DEplot);

[DEplot]

Attention: Deplot rsoud explicitement mme si la variable d'environnement _EnvExplicit est initialise false. Dans le cas o la solution gnrale explicite n'est pas unique, le traage des solutions particulires doit tre limit aux quadrants respectifs spcifis par les conditions initiales. Ainsi, pour la solution particulire correspondant la condition initiale y(3) = 2 et y(3) = -2 , nous devons faire la superposition de deux tracs.

> C1:=DEplot(EDO,y(x),x=0..6,[[y(3)=2]],y=-0.001..6,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[20,20]):
C2:=DEplot(EDO,y(x),x=0..6,[[y(3)=-2]],y=-6..0,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[20,20]):

> display([C1,C2]);

[Plot]

>

Pour le trac prcdent, il a fallu prciser l'intervalle y = -0.1e-2 .. 6 . au lieu de y = 0 .. 6 pour faire apparatre le champ d'lments de contact.

Si on essait de le faire d'un seul jet, c'est--dire sans se limiter au seul quadrant correspondant la condition initiale, voici ce que cela donne.

> DEplot(EDO,y(x),x=0..6,[[y(3)=-2]],y=-6..6,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[20,20]);

[Plot]

Horrible!

>

De plus, dans un tel cas, lorsque la condition initiale est l'origine, Deplot ne pourra reprsenter correctement la solution particulire dans un champ d'lments de contact que d'une partie videmment de la solution gnrale.

> DEplot(EDO,y(x),x=-6..6,[[y(0)=sqrt(10)]],y=-6..6,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[20,20]);

[Plot]

>

En rsum, pour illustrer dans un champ d'lments de contact des solutions particulires lorsque la solution gnrale explicite n'est pas unique, il vaut mieux crer sparment les objets champ et tracs des solutions particulires puis superposer le tout sans utiliser DEplot.

Dans le cas o la solution gnrale explicite correspond une seule solution, la macro-commande DEplot permet de tracer correctement les solutions particulires, que les conditions initiales soient l'origine ou non.

Soit l'quation diffrentielle `y'` = -2*x-y .

> EDO:=D(y)(x)=-2*x-y(x);
Sol:=dsolve(EDO);

EDO := D(y)(x) = -2*x-y(x)

Sol := y(x) = 2-2*x+exp(-x)*_C1

La solution gnrale explicite de cette quation est donc unique.

> Sol_generale:=subs([y(x)=y,_C1=C],Sol);

Sol_generale := y = 2-2*x+exp(-x)*C

Traons, avec DEplot, la solution particulire correspondant la condition initiale y(1/5) = 1/2 .

> Graphique:=DEplot(EDO,y(x),x=-2..2,[[y(1/5)=1/2]],y=-2..2,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[25,25]):
Graphique;

[Plot]

>

Superposons dans ce graphique le trac du point (1/5,1/2). Utilisons la macro-commande disk de l'extension plottools.

> with(plottools,disk);

[disk]

> P:=disk([1/5,1/2],0.05,color=navy):
display(Graphique,P);

[Plot]

>

Bien sr, les tracs de solutions particulires correspondant des solutions initiales l'origine seront correctement rendus.

> P1:=disk([0,-2],0.05,color=navy):
P2:=disk([0,-1],0.05,color=navy):

P3:=disk([0,0],0.05,color=navy):

P4:=disk([0,1],0.05,color=navy):

P5:=disk([0,2],0.05,color=navy):

> Graphique:=DEplot(EDO,y(x),x=-2..2,[[y(0)=-2],[y(0)=-1],[y(0)=0],[y(0)=1],[y(0)=2]],y=-2..2,linecolor=navy,color=khaki,scaling=constrained,arrows=line,dirgrid=[25,25]):

> display([Graphique,P||(1..5)]);

[Plot]

Mais le trac manuel des solutions particulires avec la macro-commande plot donne des tracs de meilleurs qualits. En effet, puisque la solution gnrale explicite est unique, on peut utiliser efficacement la macro-commande plot.

> Champ:=dfieldplot(EDO,[y(x)],
x=-2..2,y=-2..2,arrows=line,dirgrid=[25,25],scaling=constrained,color=khaki):

>

Superposons au champ d'lments de contact prcdent, les solutions particulires correspondant aux conditions initiales y(0) = C pour C =  -2 , -1 , 0, 1 et 2.

> Valeurs:=[-4,-3,-2,-1,0];

Valeurs := [-4, -3, -2, -1, 0]

> for i from 1 to nops(Valeurs) do
C:=Valeurs[i];

Courbe||i:=plot([x,rhs(Sol_generale),x=-2..2],color=navy,thickness=2):

od:

C:='C':  # Pour rendre C libre

i:='i':  # Pour rendre i libre

> display([Courbe||(1..nops(Valeurs)),Champ,P||(1..5)],view=[-2..2,-2..2],title="dy/dx = -2x-y",titlefont=[TIMES,ROMAN,12]);

[Plot]

>

Rsolution numrique

Soit l'quation diffrentielle dy/dx = cos(x*y) .

> EDO:=diff(y(x),x)=cos(x*y(x));

EDO := diff(y(x), x) = cos(x*y(x))

Utilisons la macro-commande dsolve pour rsoudre cette quation.

> dsolve(EDO,y(x));

>

Aucun rsultat n'est apparu. Rsolvons de nouveau cette quation mais en suivant l'valuateur dans sa recherche d'un mthode de rsolution.

> infolevel[dsolve]:=3:

> dsolve(EDO,y(x));

`Methods for first order ODEs:`
`--- Trying classification methods ---`

`trying a quadrature`

`trying 1st order linear`

`trying Bernoulli`

`trying separable`

`trying inverse linear`

`trying homogeneous types:`

`trying Chini`

`differential order: 1; looking for linear symmetries`

`trying exact`

`Looking for potential symmetries`

`trying inverse_Riccati`

`--- Trying Lie symmetry methods, 1st order ---`

``, `-> Computing symmetries using: way = 3`

``, `-> Computing symmetries using: way = 4`

``, `-> Computing symmetries using: way = 5`

`trying symmetry patterns for 1st order ODEs`

`-> trying a symmetry pattern of the form [F(x)*G(y), 0]`

`-> trying a symmetry pattern of the form [0, F(x)*G(y)]`

`-> trying symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)]`

`-> trying a symmetry pattern of the form [F(x),G(x)]`

`-> trying a symmetry pattern of the form [F(y),G(y)]`

`-> trying a symmetry pattern of the form [F(x)+G(y), 0]`

`-> trying a symmetry pattern of the form [0, F(x)+G(y)]`

`-> trying a symmetry pattern of the form [F(x),G(x)*y+H(x)]`

>

Comme on le voit, l'valuateur a essay plusieurs mthodes analytiques de rsolution. Ces mthodes se sont avres vaines. L'valuateur connat, bien sr, d'autres techniques plus avances de rsolution qui passent par des dvelopements en sries, par des transformations de Laplace. L'aide de dsolve donne de l'information sur ce sujet mais, en ce qui nous concerne, nous n'allons pas laborer l-dessus.

Quoique nous n'avons pu obtenir une solution gnrale analytique, cela ne veut pas dire pour autant qu'on ne peut pas obtenir de solutions particulires. En effet, visualisons les trajectoires de ces solutions particulires avec dfieldplot.

> Champ:=dfieldplot(EDO,[y(x)],x=0..2*Pi,y=0..4,color=orange,arrows=LINE,dirgrid=[40,40]):

> Champ;

[Plot]

>

L'valuateur a la capacit d'employer certaines mthodes numriques de rsolution pouvant donner de bonnes approximations des solutions avec conditions initiales. La feuille Maple intitule quations diff. et mthodes numriques , que vous pouvez retrouver sur mon site internet, labore sur quelques mthodes numriques lmentaires. Sans donner de dtails ici, voyons comment, avec dsolve, obtenir numriquement une courbe-solution particulire.

En prcisant, en option, l'attribut numeric , le rsultat sera une procdure (une fonction) de calcul pour y dans la courbe-solution de l'quation diffrentielle correspondant la valeur de x. Donnons le nom Points_particuliers cette procdure.

> infolevel[dsolve]:=0;

infolevel[dsolve] := 0

> Points_particuliers:=dsolve({EDO,y(1)=2},y(x),numeric);

Points_particuliers := proc (x_rkf45) local res, data, vars, solnproc, outpoint, ndsol, i; option `Copyright (c) 2000 by Waterloo Maple Inc. All rights reserved.`; _EnvDSNumericSaveDigits := Digits; D...

>

Ainsi, Points_particuliers(3) donnera comme rsultat le point dont les coordonnes sont (3,y(3)) de la solution particulire isole par la condition initiale y(1) = 2 .

> Points_particuliers(3);

[x = 3., y(x) = .649598885201893906]

>

Reste donc gnrer un certain nombre de points pour le trac de cette solution particulire qui seront superposs dans le champ des lments de contact de cette quation diffrentielle. Au lieu de le faire manuellement, la macro-commande odeplot de l'extension plots est plus efficace dans ce cas.

> with(plots,odeplot);

[odeplot]

> Sol_Particuliere:=odeplot(Points_particuliers,[x,y(x)],0..2*Pi,color=navy,thickness=2):

> display([Champ,Sol_Particuliere]);

[Plot]

>