IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[DEB] meshgrid quiver gradient [Python 3.X]


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut [DEB] meshgrid quiver gradient
    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 : 438
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 : 474
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

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut [DEB] Champ vecteur 3D matplotlib meshgrid quiver
    Je mets ce code pour les débutants qui galère un peu comme moi dans les graphismes

    Après quelque modifications de code on obtient qqchose de ressemblant au logiciel de math.
    Il faut noter que ici les vecteurs sont égaux. Ceci est dû au fait que le paramètre normalize est à True ,mais le graphe est plus joli
    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
    # Simulation totalement fictive de la répartition de la chaleur dans une pièce en fonction de la position .
    # Loi de diffusion T=10*exp-(x²+y²+z²)
    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    fig = plt.figure(figsize=[14,14])
    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()
    # si on met True les vecteurs on la même longueur mais c'est plus joli
    plt.quiver(x, y, z, u, v, w,normalize=True)
     
    plt.show()

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Depuis quand la dérivée en x de np.exp(-x ** 2) est -20*x*np.exp(-x ** 2) ? Il vient d'où votre -20 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [quiver] Visualiser un gradient entre deux images
    Par jp_developpeur dans le forum Images
    Réponses: 7
    Dernier message: 26/08/2008, 19h06
  2. [MYSQL][deb]taille tjrs aussi grande malgre suppression
    Par floben21 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/08/2004, 11h39
  3. [deb] texte
    Par boucher_emilie dans le forum ASP
    Réponses: 8
    Dernier message: 06/08/2004, 16h19
  4. [Servlet][Deb]envoyer image gif sur le flux http
    Par ptitBoutchou dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 09/04/2004, 10h12
  5. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo