De toute façon de résoudre un système d'équations différentielles couplées en python?
J'ai travaillé avec sympy et scipy, mais ne peut pas trouver ou à comprendre comment faire pour résoudre un système d'équations différentielles couplées (non linéaire du premier ordre).
Donc est-il possible de résoudre les équations différentielles couplées?
Les équations sont de la forme:
V11'(s) = -12*v12(s)**2
v22'(s) = 12*v12(s)**2
v12'(s) = 6*v11(s)*v12(s) - 6*v12(s)*v22(s) - 36*v12(s)
avec les conditions initiales pour la v11(s), v22(s), v12(s).
Jetez un oeil à sage. Il propose des mathmatica les fonctionnalités avec la syntaxe de python. Il pourrait être en mesure de résoudre les diff eq.
Vous êtes à la recherche d'une solution analytique, ou une solution numérique? (Vous avez mentionné l'aide sympy, de sorte que vous peut être l'espoir d'une solution analytique, si il y en a un.)
Une solution numérique, semblable à la NDsolve de mathematica.
Il est de premier ordre, mais cela ne ressemble pas à un système linéaire à moi, comme vous, ont le pouvoir, et les produits des variables dépendantes.
Vous avez raison, j'ai malencontreusement écrit linéaire plutôt que les non-linéaire. Post a été mis à jour. Bonne prise!
Vous êtes à la recherche d'une solution analytique, ou une solution numérique? (Vous avez mentionné l'aide sympy, de sorte que vous peut être l'espoir d'une solution analytique, si il y en a un.)
Une solution numérique, semblable à la NDsolve de mathematica.
Il est de premier ordre, mais cela ne ressemble pas à un système linéaire à moi, comme vous, ont le pouvoir, et les produits des variables dépendantes.
Vous avez raison, j'ai malencontreusement écrit linéaire plutôt que les non-linéaire. Post a été mis à jour. Bonne prise!
OriginalL'auteur faceforest | 2013-06-04
Vous devez vous connecter pour publier un commentaire.
Pour la solution numérique des ODEs avec scipy, voir la fonction scipy.s'intégrer.odeint ou la classe scipy.s'intégrer.ode.
Quelques exemples sont donnés dans le SciPy Livre De Recettes (faites défiler jusqu'à la section sur les "Équations Différentielles Ordinaires").
OriginalL'auteur Warren Weckesser
En plus de SciPy méthodes
odeint
etode
qui ont été déjà mentionné, il a maintenantsolve_ivp
qui est plus récent et souvent plus pratique. Un exemple complet, encodage[v11, v22, v12]
comme un tableauv
:Cela résout le système sur l'intervalle
(0, 0.1)
valeur initiale[2, 3, 4]
. Le résultat est variable indépendante (s dans votre notation)res.t
:Ces valeurs ont été choisies automatiquement. On peut fournir de l'
t_eval
avoir la solution évalués à des points souhaités: par exemple,t_eval=np.linspace(0, 0.1)
.La variable dépendante (la fonction nous sommes à la recherche pour l') est en
res.y
:Avec Matplotlib, cette solution est tracée en
plt.plot(res.t, res.y.T)
(le complot serait plus douce si je fournist_eval
comme mentionné).Enfin, si le système des équations d'ordre supérieur à 1, on aurait besoin d'utiliser réduction pour une 1ère commande système.
OriginalL'auteur