Bonjour à tous,

Je dois adapter le Schéma d'Euler à l'équation suivante: f(t,u)=(1-t)/(1+u)

Voici mon code Python mais j'obtiens des valeurs bizarres à partir de 2,5.

Quelqu'un pourrait-il m'expliquer où est mon erreur?

On m'a demander dans une précédente question de faire une représentation graphique de U(t) solution de l'équation différentielle y'=(1-t)/(1+y) sur l'intervalle [0;3] donc j'ai pris le même intervalle mais peut-être aurais-je dû en prendre un autre?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def fun(t,u):
    return (1-t)/(1+u)
# parametres
t0,tf,y0,n=0,3,0,100
temps=np.linspace(t0,tf,n+1)
 
#euler 
def euler(fct,ti,tf,nt,yi):
    y=np.zeros(nt+1)
    h=(tf-ti)/nt
    t=np.linspace(ti,tf,nt+1)
    y[0]=yi
    for i in np.arange(nt):
        y[i+1]=y[i]+h*fct(t[i],y[i])
    return t,y
# appel de la fonction
 
t,y=euler(fun,t0,tf,n,y0) 
plt.plot(t,y)
plt.title ('intégration Euler Explicite')
plt.xlabel('t')
Merci d'avance de votre aide