How can I solve coupled differential equations using Odeint

84 Views Asked by At

I need to solve some coupled differentials equations for a physic project, and i manage to make my script working. However, the results I get are completely false despite having checked the coefficients I'm using. Is this script any good or is there so errors ?

#résolution vectorielle des 2 équations couplées p5 et p6 par la méthode de Runge Kutta  ordre 4 (?) (odeint)

#importation des bibliothèques
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint

# Mise de l'équation sous forme dY/dt = f(Y,t) (cf classeur TIPE)
# Y = [[u],[v]] , u = dr / dt et v = ds /dt
# odeint prend en argument (la fonction f, les conditions initiales, )

#? Calcul des coefficients
epsilon = 30e-3 #rayon du javelot en m
gamma = 2 #Cx amimensionné
rho = 1.204 #masse volumique de l'air en kg/m^3
L = 2700e-3 #longueur javelot en m
m = 800e-3 #masse javelot en kg
delta = 10 (np.pi/180) #angle d'attaque en rad
alpha = np.pi/4 #angle de lancé en rad
g = 9.81

betaj = 8*gamma*rho*epsilon*L  #8gamma*rho*epsilon*L  de dim M.L^-1
gammaj = 2*gamma*np.pi*rho*np.square(epsilon) #en M.L^-1

a = -(gammaj + betaj*np.abs(np.sin(delta)))/m
b = -g + (betaj/m) * np.sin(delta)*np.sin(alpha)



# définition de f(Y,t)
def SecondMembre(Y,t) : #u vitesse selon ux, v vitesse selon uy
    u = Y[0]
    v = Y[1]
    dudt = a*u**2 + a*v**2
    dvdt = b*u**2 + b*v**2
    return([dudt, dvdt])

#tableau de temps en lesquels la fonction fournit la solution Y(t)
    #n est le nombre de temps dans la liste, ti le temps initial et tf le temps final en seconde
ti=0
tf=30
n=200
t=np.linspace(ti,tf,n)  
 
#conditions initiales
u0 = 7.07
v0 = 7.07
CondInit=np.array([u0,v0])

#utilisation de odeint
Ys = odeint(SecondMembre, CondInit, t)  #renvoie une matrice avec u et v  pour les 200 pas de temps
u=Ys[:,0]
v=Ys[:,1]  #! c'est une fonction numpy et pas un tableau python classique

print(u)

There is the link to the documentation from which I took the equations if any of you want to check, it is at page 5/6 https://www.leshatton.org/Documents/jav2005a_paper.pdf

I've tried to solve it by puting the equations under a matrix form, but im not sure of it

thanks for your help

0

There are 0 best solutions below