Python (école d'ingénieur) · Chapitre 13 · Exercice
Croissance logistique
Résolution d'équations différentielles
Énoncé
Résoudre numériquement l'équation logistique avec , , .
Corrigé
import numpy as np
import matplotlib.pyplot as plt
def logistique(x, t, r=0.5, K=10):
return r * x * (1 - x / K)
# Euler explicite
def euler_logistique(x0, t0, tf, n):
h = (tf - t0) / n
t = np.linspace(t0, tf, n+1)
x = np.zeros(n+1)
x[0] = x0
for k in range(n):
x[k+1] = x[k] + h * logistique(x[k], t[k])
return t, x
# Simulation
x0 = 1.0
t0, tf = 0.0, 50.0
n = 1000
t, x = euler_logistique(x0, t0, tf, n)
# Solution analytique
def x_exact_log(t, x0, r, K):
return K * x0 * np.exp(r*t) / (K + x0 * (np.exp(r*t) - 1))
x_theorique = x_exact_log(t, x0, 0.5, 10)
plt.figure(figsize=(10, 6))
plt.plot(t, x, 'b-', label='Euler explicite')
plt.plot(t, x_theorique, 'r--', label='Solution exacte')
plt.xlabel('t')
plt.ylabel('Population')
plt.title('Croissance logistique')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
print(f"Population à t=50 : {x[-1]:.2f} (capacité limite = 10)")
Simulation de la croissance logistique par la méthode d'Euler explicite.
Résultat dans la console :
Population à t=50 : 9.98 (capacité limite = 10)
La population tend vers la capacité limite .
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.