odeint python
odeint python
Bonjour, je cherche à utiliser python pour résoudre numériquement une équation.*
Je vois comment fonctionne odeint pour une équation du type : y''(t) = F(y(t),y'(t),t)
Mais comment s'en sortir pour résoudre un système d'équations couplées ??
ie : on a trois fonctions x,y,teta
et la dérivée seconde de x dépend de x,y,teta,x',y',teta'
et de même pour celle de y et de teta
Merci à vous
Je vois comment fonctionne odeint pour une équation du type : y''(t) = F(y(t),y'(t),t)
Mais comment s'en sortir pour résoudre un système d'équations couplées ??
ie : on a trois fonctions x,y,teta
et la dérivée seconde de x dépend de x,y,teta,x',y',teta'
et de même pour celle de y et de teta
Merci à vous
Re: odeint python
https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.integrate.odeint.html
L'exemple part d'une équa diff d'ordre deux qu'on transforme en un système couplé pour le résoudre.
Quel est ton système? Quel est le pb?
L'exemple part d'une équa diff d'ordre deux qu'on transforme en un système couplé pour le résoudre.
Quel est ton système? Quel est le pb?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: odeint python
Bonjour, mon problème est que mon équation ne concerne pas une seule fonction comme dans otre exemple mais trois fonctions x,y,teta
Re: odeint python
Il faut se placer dans un espace vectoriel de dimension 6 et considérer le vecteur V = (x, y, theta, x', y', theta') ; ce dernier vérifie une équation différentielle de la forme V'= F(V, t) et peut donc être résolu numériquement à l'aide de odeint.
Re: odeint python
Bonjour, merci j'ai essayé mais cela ne fonctionne pas.. En fait j'aimerais savoir pour ce vecteur V, je le prends de quel type concrètement?
Re: odeint python
Concrètement, il faut que V soit une liste Python ou un tableau numpy. Et il faut que la fonction F soit définie peu ou prou de la manière suivante :
def F(V, t):
....x, y, theta, dx, dy, dtheta = V
# ici tu insère la définition de d2x, d2y, d2theta en fonction de t et des paramètres ci-dessus
....return [dx, dy, dtheta, d2x, d2y, d2theta]
Ensuite tu discrétise l'intervalle de temps que tu souhaites et tu lance odeint :
t = numpy.linspace(a, b, 256)
x, y, theta, dx, dy, dtheta = odeint(F, V0, t)
où V0 est le vecteur des conditions initiales.
def F(V, t):
....x, y, theta, dx, dy, dtheta = V
# ici tu insère la définition de d2x, d2y, d2theta en fonction de t et des paramètres ci-dessus
....return [dx, dy, dtheta, d2x, d2y, d2theta]
Ensuite tu discrétise l'intervalle de temps que tu souhaites et tu lance odeint :
t = numpy.linspace(a, b, 256)
x, y, theta, dx, dy, dtheta = odeint(F, V0, t)
où V0 est le vecteur des conditions initiales.
Re: odeint python
Essaye de comprendre car c'est un truc important en analyse numérique:
https://docs.scipy.org/doc/scipy-0.18.1 ... deint.html
L'algo ne sait résoudre que le l'ordre1.
"l'atsuce" est donc de poser z=y' et de résoudre un système d'odre1 en le vecteur (y,z).
https://docs.scipy.org/doc/scipy-0.18.1 ... deint.html
L'algo ne sait résoudre que le l'ordre1.
"l'atsuce" est donc de poser z=y' et de résoudre un système d'odre1 en le vecteur (y,z).
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.