Bonjour, je cherche à coder la méthode de Runge Kutta d'ordre 4, voici mon algo sous python: problème, rien ne sors
Merci de votre aide
Mon Algo:
- Méthode runge Kutta d'ordre 4 avec une équation dV/dt=f(V,t)
from pylab import*
from math import*
def FonctionF(t,v): #à remplir pour chaque fonction
return exp(-0.2*v+t)-12*cos(v)
v0=0 # valeurs initiales
tm=1 #tm correspond au temps maximum: ici exemple
p=0.01 ##p correspond au pas temporel: ici exemple
nbp=(tm//p)+1 #calcule le nombre de pas nbp (tm//p correspond au quotient de tm par p)
LX=[]
LY=[]
def RK4(FonctionF,LX,LY,f1,f2,f3,f4,Vn,t,i,p,nbp):
Vn=v0
t=0
i=1
while i<nbp: #nbp est le nombre de pas temporel pour arriver à un temps maximum
f1=FonctionF(Vn,t)
f2=FonctionF(Vn+(1/2)*p*f1,t+(1/2)*p) #p correspond au pas temporel
f3=FonctionF(Vn+(1/2)*p*f2,t+(1/2)*p)
f4=FonctionF(Vn+p*f3,t+p)
LX.append(t)
LY.append(Vn)
Vn=Vn+(1/6)*p*(f1+2*f2+2*f3+f4)
t+=p
i=i+1
return LX,LY