Champ de vecteurs : 3 exemples avec le code python
Автор: WT- chimie licence et cristallographie master
Загружено: 2025-03-16
Просмотров: 507
Résolution détaillée de 3 équations différentielles linéaires d'ordre 1.
Je donne ci-après le code python qui permet de générer le champ de vecteur. A vos compilateurs...`
import numpy as np
import matplotlib.pyplot as plt
# Définir la grille de points et les fonctions
x = np.linspace(0.1, 10, 20)
y = np.linspace(-5, 5, 20)
X, Y = np.meshgrid(x, y)
x_values = np.linspace(0.1, 10, 10000) # Valeurs de x_values
def f(x):
return (-1 + x)
def g(x):
return (-1 + 3*x)
def h(x):
return (-1 + 0.3*x)
def i(x):
return (-1 - x)
# Calculer les dérivées
U = np.ones_like(x) # composante x constante
V = Y/x + 1/x # composante y
Normaliser les vecteurs
length = 1 # 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 et les fonctions
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, f(x_values), label='f(x) = x-1', color='r', linewidth=1)
plt.plot(x_values, g(x_values), label='g(x) = 3x-1', color='blue', linewidth=1)
plt.plot(x_values, h(x_values), label='h(x) = 0,3x-1', color='green', linewidth=1)
plt.plot(x_values, i(x_values), label='i(x) = -x-1', color='green', linewidth=1)
plt.ylim(-5, 5)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Equation différentielle : dy/dx = y/x + 1/x')
plt.legend(['champ de vecteurs','x-1','3x-1','0,3x-1','-x-1'])
plt.grid(True)
plt.show()
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: