Bonjour à tous ,
Malgré mes recherches j'ai un peu de mal avec les fonctions précédentes.
Il s'agit de simuler une décroissance de température en fonction de l'éloignement d'une source de chaleur . T= np.exp(-x**2)*np.exp(-y**2)*np.exp(-z**2) et de faire de ce champ scalaire un champ vectoriel par l'usage du gradient afin d'obtenir une représentation visuelle telle que celle-ci Nom : matlab.jpg
Affichages : 556
Taille : 18,1 Ko
Voici mon code
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
22
23
24
25
26
27
28
#
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
 
 
fig = plt.figure()
ax = fig.gca(projection='3d')
 
# coordonnées des points de la simulation
x, y, z = np.meshgrid(np.linspace(-5,5,10),
                         np.linspace(-5,5,10),
                         np.linspace(-5,5,10))
 
# Evolution de la température en fonction de la position dans la pièce
T= np.exp(-x**2)*np.exp(-y**2)*np.exp(-z**2)
 
# Calcul du gradient par le calcul de 3 dérivées partielles
 
u = -20*x*(np.exp(-x**2)*np.exp(-y**2)*np.exp(-z**2))
v = -20*y*(np.exp(-x**2)*np.exp(-y**2)*np.exp(-z**2))
w = -20*z*(np.exp(-x**2)*np.exp(-y**2)*np.exp(-z**2))
 
plt.grid()
 
plt.quiver(x, y, z, u, v, w)
 
plt.show()
et le résultat
Nom : result.jpg
Affichages : 572
Taille : 9,7 Ko

Faut il utliser la fonction np.gradient ?
Je n'ai visiblement pas compris ce que représentent u,v w

En vous remerciant de m'avoir consacré de votre temps