Comme dans les deux sections précédentes, on distingue le
calcul exact, qui n'est pas toujours possible, du calcul
approché. La résolution exacte s'effectue par desolve
.
Les dérivées de la fonction inconnue peuvent s'écrire ,
, qui sont traduits en diff(y)
, diff(diff(y))
.
Si on ne spécifie pas de condition initiale, le résultat est donné
en fonction de constantes arbitraires.
desolve(y'=y,y) desolve(y''+2*y'+y=0,y) desolve((x^2-1)*y'+2*y=0,y)
Les conditions initiales sont vues comme des équations supplémentaires, qui forment une liste avec l'équation différentielle.
desolve([y'=y,y(0)=1],y) desolve([y"+2*y'+y=0,y(0)=1],y) desolve([y"+2*y'+y=0,y(0)=1,y'(0)=1],y) desolve([y"+2*y'+y=0,y(0)=1,y(1)=0],y) desolve([(x^2-1)*y'+2*y=0,y(0)=1],y) desolve((t^2-1)*diff(y(t),t)+2*y(t)=0,y(t))
La fonction odesolve
permet de résoudre par des méthodes
numériques une équation différentielle passant par
un point . Par exemple
odesolve(sin(x*y),[x,y],[0,1],2)
permet de calculer où est la solution de
,
telle que .
La fonction plotode
représente graphiquement
la solution d'une équation différentielle,
plotfield
représente le champ
des tangentes. La fonction
interactive_plotode
représente le champ
des tangentes et permet de cliquer sur le graphique pour tracer
les solutions passant par les points cliqués.
plotfield(sin(x*y),[x,y]) plotode(sin(x*y),[x,y],[0,1]) erase() interactive_plotode(sin(x*y),[x,y])
Equations différentielles | |
desolve |
résolution exacte |
odesolve |
résolution approchée |
plotode |
tracé de trajectoire |
plotfield |
tracé d'un champ de vecteurs |
interactive_plotode |
interface cliquable |