Bonjour, je suis vraiment perdue pour passer de la 2D à la 3D. Sur un code qui est déj fait. Avez vous des pistes pour commencer?
import numpy as np
import matplotlib.pyplot as plt
longueur_terrain = np.arange(-500,510,10)*1e3
longueur_montagne = np.arange(-100,110,10)*1e3
hauteur_montagne_gauche = np.arange(0,1.1,1/10)*1e3
hauteur_montagne_droite = np.arange(1,-0.1,-1/10)*1e3
hauteur_terrain_base = np.zeros(int(len(longueur_terrain)))
xmin=-500
xmax=500
dx=10*1e3
hmax=1
plt.plot(longueur_terrain,hauteur_terrain_base)
#%%
for i in np.arange(0,int(len(longueur_terrain))):
hauteur_terrain_base[i] = 0
if np.where(longueur_terrain == min(longueur_montagne)) <= i <= np.where(longueur_terrain == 0):
hauteur_terrain_base[i] = hauteur_montagne_gauche[i-np.where(longueur_terrain == min(longueur_montagne))]
if np.where(longueur_terrain == 0) <= i <= np.where(longueur_terrain == max(longueur_montagne)):
hauteur_terrain_base[i] = hauteur_montagne_droite[i-np.where(longueur_terrain == 0)]
plt.plot(longueur_terrain,hauteur_terrain_base)
h = hauteur_terrain_base
#%%
h = hauteur_terrain_base
k = 1e4
dt = 1e1
vari=[1e1,1e2,1e3,1e4]
tmax = 1e5
r = (k*dt/(dx**2))
topo_finale = np.zeros([int(len(longueur_terrain)),int(tmax/dt)])
topo_finale[:,0]=h
# for l in range(int(len(vari))):
# dt=int(vari[l])
# print(dt)
for j in np.arange(0,int(tmax/dt)-1,1):
for i in range(1,int(len(longueur_terrain))-1):
topo_finale[i,j+1] = r*topo_finale[i+1,j]+(1-2*r)*topo_finale[i,j]+r*topo_finale[i-1,j]
plt.figure(1)
plt.plot(longueur_terrain,topo_finale[:,-1])
plt.title("prévision de la topo dans 10 000 ans en utilisant la méthode explicite")
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.