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 :

Modéliser les vecteurs champs électrostatique sur python.


Sujet :

Python

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut Modéliser les vecteurs champs électrostatique sur python.
    Bonsoir

    Je ne vois pas où est l'erreur dans le code ci-dessous.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    import numpy as np
    import matplotlib.pyplot as plot
     
    xmin, ymin, xmax, ymax = -4, -3, 4, 3
     
    X=0
    Y = 0
    h = 0.01
    x = np.arange(xmin,xmax, h)
    y = np.arange(ymin,ymax, h)
     
    X, Y = np.meshgrid(X,Y)
     
    particule = [(-1,-2,0),(1, 2,0)]
     
    vect = [np.array([X-xk, Y-yk]) for xk,yk, qk in particule]
     
    dist = [np.linalg.norm(Ve, axis = 0) for Ve in vect]
     
    E = sum(9e9*qk*Ve / D**2 for (xk,yk, qk), Ve,D in zip (particule, vect, dist))
     
    dlimit = 0.5
     
    for D in dist:
        E[0][D<dlimit] = np.nan
        E[1][D<dlimit] = np.nan
     
    #Représentation
     
    plot.title("Champ electrostatique")
    plot.axis('equal')
    plot.xlim(xmin,xmax)
    plot.ylim(ymin,ymax)
     
    ax = plot.gca()
     
    #Représentation de la secton des fils.
     
    for xk,yk, qk in particule:
        radius = 0.05*qk
        color = 'red' if qk > 0 else 'blue'
        circle = plot.Circle((xk,yk), radius, color=color)
        ax.add_artist(circle)
     
    #Représentation des champs électriques.
     
    step = 50
     
    plot.quiver(X[::step, step::], Y[::step, step::], E[0,::step, step::], E[1,::step, step::], scale=None)
     
    plot.draw()
     
    plot.show()
    Voici le message d'erreur



    La fenêtre du graphique est vide.



    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par argon Voir le message
    Je ne vois pas où est l'erreur dans le code ci-dessous.
    Le message d'erreur semble dire qu'un des arguments de quiver est un "empty slice" (et on ne peut en faire la moyenne).
    C'est certainement le cas et ça se vérifie en affichant les différents arguments.
    Et une fois admis que Python a de bonnes raisons de râler, reste à trouver comment lui raconter plus proprement ce que vous cherchez à lui faire faire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur Système
    Inscrit en
    Novembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Système

    Informations forums :
    Inscription : Novembre 2019
    Messages : 17
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    A la ligne 12, est-tu sûr que c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X, Y = np.meshgrid(X,Y)
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X, Y = np.meshgrid(x,y)
    => Majuscule/minuscule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    particule = [(-1,-2,0),(1, 2,0)]
    donc à la ligne 20, qk est toujours nul. E ne contiendra que des 0, est-ce bien voulu ?

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par AznarAkeba Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    particule = [(-1,-2,0),(1, 2,0)]
    donc à la ligne 20, qk est toujours nul. E ne contiendra que des 0, est-ce bien voulu ?
    Bien vu !!!
    Cependant ça m'étonnerait que ce soit voulu car avec qk nul, cette somme sum(9e9*qk*Ve / D**2 for (xk,yk, qk), Ve,D in zip (particule, vect, dist)) est à 0.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Comment calculer et afficher des champs calculés sur les états ?
    Par babez dans le forum Bases de données
    Réponses: 8
    Dernier message: 05/06/2008, 21h51
  2. algorithme sur les vecteurs
    Par alouha dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/04/2008, 18h41
  3. Requete sur plusieurs tables contenant les mêmes champs
    Par Louison dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/04/2007, 20h41
  4. Boucler sur les numero champs
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 30/08/2006, 06h29
  5. détecter les enregistrements en double (sur un champ)
    Par Phiss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/07/2006, 16h59

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