Tracé d'une surface

Signaler
Messages postés
106
Date d'inscription
samedi 27 février 2016
Statut
Membre
Dernière intervention
15 février 2021
-
Messages postés
14439
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
-
Bonjour,

J'aimerais tracer une surface sur Python à partir de points.

En gros :

j'ai x qui varie de 0 à 10 avec un pas de 0.1
j'ai t qui varie de 0 à 5 avec un pas de 0.1
j'ai une matrice qui contient toutes les valeurs de la fonction u(x,t) des différents couples (x,t) possibles.

J'aimerais donc avoir la surface générée par x, t, et u(x,t)

Je vous joins mon programme :

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
def resolution_edp(L,T,h,dt,c,T0,X0):

N=math.ceil((L/h)-1)
NT=math.ceil((T/dt)-1)
S=np.zeros(shape=(NT,N))

A=np.zeros(shape=(NT+1,N+1))
for i in range(10,21):
A[0][i]=T0
for i in range(1,NT):
A[i][0]=X0

for j in range(0,NT-1):
for i in range(1,N):
A[j+1][i]=A[j][i]-(dt/h)*c*(A[j][i]-A[j][i-1])
S[j][i-1]=A[j+1][i]

return S,S.shape
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Pour vous restituer le contexte, je dois résoudre une équation d'advection unidimensionnelle selon x aux dérivées partielles, instationnaire, par différence finie.

La fonction me retourne la matrice S, qui contient pour mes différents incréments de temps et d'espace, la valeur de la fonction u(x,t).

Mais pour le tracé de la surface, je ne sais pas comment faire comprendre à Python de faire correspondre chaque couple (x,t) à sa valeur dans la matrice S...

Merci de votre aide, hésitez pas à me demander plus d'infos si vous ne comprenez pas ce que je raconte ^^

1 réponse

Messages postés
14439
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
bonjour,
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

en général, on n'essaie pas de faire comprendre quelque chose à Python, on lui donne des instructions pour produire un résultat.

je ne comprends pas le résultat que tu attends.
tu ne nous montres pas comment tu appelles ta fonction.
montre un exemple de comment tu traces une surface.

si je comprends bien, tu as 5000 tuples (x,t,u(x,t)): que veux-tu en faire?