Equations différentielles et champ de vecteurs : comment faire ?
Автор: WT- chimie licence et cristallographie master
Загружено: 2025-03-11
Просмотров: 752
Résolution pas à pas d'une équation simple : y' -4y = 3.
Ci-dessous le code python pour générer le champ de vecteurs associés.
Toutes améliorations et suggestions constructives sont les bienvenues :)
import numpy as np
import matplotlib.pyplot as plt
# Définir la grille de points
x = np.linspace(-2, 0.2, 40)
y = np.linspace(-2, 1, 20)
X, Y = np.meshgrid(x, y)
# Définir les fonctions
def f(x):
return np.exp(4*x)
def g(x):
return (-1*f(x) - 3/4)
def h(x):
return (2*f(x) - 3/4)
def i(x):
return (30*f(x) - 3/4)
def j(x):
return (-10*f(x) - 3/4)
# Définir le nombre de points pour les courbes fonctions
x_values = np.linspace(-2, 2, 10000) # Valeurs de x
# Calculer les dérivées
U = np.ones_like(X) # composante x constante
V = 3 + 4*Y # composante y
# Normaliser les vecteurs
length = 0.2 # Longueur fixe des vecteurs
norm = np.sqrt(U**2 + V**2) # Calculer la norme
norm[norm == 0] = 1e-10 # Éviter la division par zéro
U_normalized = U / norm # Normaliser U
V_normalized = V / norm # Normaliser V
U_normalized *= length #
V_normalized *= length #
# Tracer le champ de vecteurs
plt.figure(dpi=600)
plt.quiver(X, Y, U_normalized, V_normalized, angles='xy', scale_units='xy', scale=1.5, color='black')
plt.plot(x_values, g(x_values), label='g(x) = -exp(4x)-3/4', color='b', linewidth=3)
plt.plot(x_values, h(x_values), label='h(x) = 2exp(4x)-3/4', color='r', linewidth=3)
plt.plot(x_values, i(x_values), label='h(x) = 30exp(4x)-3/4', color='g', linewidth=3)
plt.plot(x_values, j(x_values), label='h(x) = -6exp(4x)-3/4', color='y', linewidth=3)
plt.xlim(-2, 0.2)
plt.ylim(-2, 1)
plt.xlabel('x')
plt.ylabel('y')
plt.legend(['champ de vecteurs','-exp(4x)-3/4','2exp(4x)-3/4','30exp(4x)-3/4','-10exp(4x)-3/4'])
plt.title('Equation différentielle : dy/dx = 3 + 4y')
plt.grid(True)
plt.show()
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: