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 |