Introduction pratique aux EDP

JP Chehab

Modèles physiques et EDP

( Illustrations Maple du chapitre 1)

On présente ici la classification des EDP en effectuant les calculs avec Maple. Quelques illustrations d'EDP de chaque type sont également proposées.

Classification des EDP

On se restreint au cas de deux variables et on considère l'équation :

[Maple Math]

Le type de cette EDP est donné par le discriminant de la partie principale :

[Maple Math]

soit

[Maple Math]

On suppose que A, B et C sont des constantes et on se propose de déterminer un changement de variables linéaire tel que l'équation s'exprime plus simplement avec les nouvelles variables, qu'on notera [Maple Math] et [Maple Math] .

On pose

[Maple Math]

où a et b sont à déterminer.

Exprimons, à l'aide de Maple, les dérivées secondes en (x,y) en fonctions de dérivées en ( [Maple Math] ).

> restart;with(PDEtools):

> EDP:=A*diff(diff(u(x,y),x),x)+B*diff(diff(u(x,y),x),y)+C*diff(diff(u(x,y),y),y);

[Maple Math]

> eq:={eta = x+y*a, xi = x+b*y}:

> eqn:=solve(eq,{x,y});

[Maple Math]

> EQ:=dchange(eqn,EDP,[eta,xi]);

[Maple Math]
[Maple Math]
[Maple Math]

>

> EQ1:=expand(subs(u(eta,xi,a,b)=u(eta,xi),EQ));

[Maple Math]
[Maple Math]

> EQ3:=collect(collect(collect(EQ1,diff(u(eta,xi),eta,eta)),
diff(u(eta,xi),eta,xi)),diff(u(eta,xi),xi,xi));

[Maple Math]

Les coefficients de [Maple Math] et de [Maple Math] sont respectivement P(a) et P(b) où P(x) est le polynôme du second degré

[Maple Math]

dont le discriminant est, on pouvait s'y attendre (!), [Maple Math] .

On distingue naturellement 3 cas.

[Maple Math] : cas hyperbolique

[Maple Math] : cas parabolique

[Maple Math] : cas elliptique

Quelques exemples d'EDP

Equation de conservation

Soit l'équation

[Maple Math]

On considère le changement de variables

[Maple Math]

[Maple Math]

L'équation se réécrit alors avec les nouvelles coordonnées

[Maple Math]

Ainsi u ne dépend que de la variable [Maple Math] . D'où

[Maple Math]

où F est une fonction inconnue.

Les droites x-ct=cste sont appelées caractéristiques ; ce sont les courbes qui transportent le signal.

Exemple 1 : translation d'un profil

> restart;with(DEtools):

> EQ:=diff(u(x,t),t)+a*diff(u(x,t),x)=0;

[Maple Math]

avec la donnée initiale

> u(x,0):=(x+1)*piecewise(x <=0and x>=-1,1,0)
+(1-x)*piecewise(x <=1and x>=0,1,0);

[Maple Math]

> a:=1;

[Maple Math]

> g:=unapply(u(x,0),x);

[Maple Math]

> plot(g(x),x=-2..2);

>

> pdesolve(EQ,u(x,t));

[Maple Math]

> u:=(x,t)->g(t-x);

[Maple Math]

> plot(u(x,0),x=-1..1);

> with(plots):

> animate(u(x,t),x=-1..10,t=0..10,color=RED,numpoints=200);

Exemple 2 : résolution avec Maple

> restart;with(PDEtools):

> eqc1:=diff(u(x,t),t)+c*diff(u(x,t),x)=0;

[Maple Math]

> pdesolve(eqc1,u(x,t));

[Maple Math]

On procède analoguement pour résoudre l'équation

[Maple Math]

En effet

> ecq:=diff(v(x,t),t)+c*diff(v(x,t),x)+a*v(x,t) = t;

[Maple Math]

> pdesolve(ecq,v(x,t));

[Maple Math]

Equation des ondes

On s'intéresse aux vibrations d' une corde flexible de longueur infinie.

On décrit l'amplitude des déplacements de la corde par une fonction u(x,t) , les déplacements suivant le plan perpendiculaire à Ox sont supposés négligeables.

> restart;with(PDEtools):

> eq_ondes:=diff(u(x,t),t,t)-c^2*diff(u(x,t),x,x) = 0;

[Maple Math]

Ici c est la vitesse de l'onde.

Déterminons la forme générale des solutions de eq_ondes

> pdesolve(eq_ondes,u(x,t));

[Maple Math]

Les solutions sont donc une superposition de deux ondes l'une se deplaçant vers la gauche, l'autre vers la droite, et toutes deux à la vitesse c.

Formule de d'Alembert

On considère à nouveau le problème de Cauchy

> diff(u(x,t),t,t)-c^2*diff(u(x,t),x,x) = 0;u(x,0)=f(x);diff(u(x,t),t)(0)=g(x);

[Maple Math]

[Maple Math]

[Maple Math]

La formule de d'Alembert nous fournit la solution :

[Maple Math]

Illustration

On programme ici la formule de d'Alembert

> restart;with(DEtools):

> dalembert:=proc(f,g,c)
local u;
u:=(f(x-c*t)+f(x+c*t)+int(g(s),s=x-c*t..x+c*t)/c)/2;
end;

[Maple Math]

> f:=x->exp(-x^2);g:=x->0;

[Maple Math]

[Maple Math]

> u:=unapply(dalembert(f,g,3),(x,t));

[Maple Math]

> plot3d(u(x,t),x=-8..8,t=0..2,title=`Equation des ondes`,axes=BOXED);

On peut voir l'évolution au cours du temps :

> with(plots):

> animate(u(x,t),x=-8..8,t=0..2,color=RED);

La solution apparait bien comme superposition de deux ondes.

Equations de diffusion

On repart d'une équation de conservation

[Maple Math]

Si l'on suppose que [Maple Math] est relié à u par la relation :

[Maple Math]

alors u satisfait l'équation

[Maple Math]

qu'on appelle encore équation de diffusion

Remarque : on obtient par le même cheminement les équations de diffusion pour des fonctions de plusieurs variables d'espace ( remplacer [Maple Math] par div( [Maple Math] ) et [Maple Math] par [Maple Math] )

Equation de la chaleur dans un domaine non-borné

On considère l'équation de la chaleur dans R tout entier (cas d'une barre homogène infinie)

[Maple Math]

[Maple Math]

pour x dans R et pour tout t >0.

> restart;with(DEtools):assume(nu>0):

> eq:=diff(u(x,t),t)-nu*diff(u(x,t),`$`(x,2))=0;

[Maple Math]

> U:=unapply(rhs(pdsolve(eq,u(x,t),build)),(x,t));

[Maple Math]

> V:=simplify(limit(U(x,t),t=0));

[Maple Math]