Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passer de la 2D à la 3D

    15 décembre 2021 à 15:16:52

    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")
    • Partager sur Facebook
    • Partager sur Twitter

    Passer de la 2D à la 3D

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown