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

Calcul scientifique Python Discussion :

Methode d’Euler Python


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Methode d’Euler Python
    Bonsoir,

    Je suis nouveau sur Python et je rencontre beaucoup de difficultés à coder la méthode d’Euler explicite et implicite. Pourriez-vous me guider, je bloque totalement.

    Merci d’avance,

    Cordialement,
    Théo.

    Pièce jointe 580942

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : août 2010
    Messages : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut,

    Navré, mais vous n'êtes pas sur le bon forum. Ici des gens aident à comprendre, guider et éventuellement corriger un bout de code de quelqu'un. Mais personne ne programme pour les autres. Enfin, sans doute que si, mais contre rémunération dans le cadre de leur travail.

    Ne vous attendez pas à ce que quelqu'un fasse l'éxo pour vous. Urgent ou pas.

    Par contre, si vous essayez vraiment, que vous galérez sur un point en particulier, un erreur ou un comportement de votre code que vous ne comprenez pas, vous obtiendrez certainement de l'aide.

    J

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Serait-il possible de prendre attache avec un développeur pour bénéficier d’une aide plus accompagnée ?


    Sinon je procèderai comme suggéré. Merci et désolé.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : août 2010
    Messages : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    Citation Envoyé par Theo66 Voir le message
    Serait-il possible de prendre attache avec un développeur pour bénéficier d’une aide plus accompagnée ?
    Demander une aide personnalisée avec un développeur ? Je ne crois pas que ça se fait.

    Honnêtement, vous devriez vous lancez dans la réalisation de l'exercice. C'est vraiment basique. Je suis sûr que vous n'avez même pas essayé, sinon vous vous en rendriez compte. Il y a 4 fonctions à réaliser, et c'est deux fois les même avec une mini variante. Je ne sais pas quelle formation vous suivez, mais si vous séchez à ce niveau ça n'augure rien de bon.

    Lancez vous.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    En fait je suis un peu perdu avec le Euler_step et Mp_step. Je n’arrive pas à faire le lien avec mon Euler et Mp.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : août 2010
    Messages : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    euler() appelle euler_step(). C'est une suite. Vous commencez avec y0, puis calculez y1, puis y2, etc... chaque y est le résultat de euler_step(). Montrez nous ce que vous avez déjà.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Du coup il suffit d’écrire pour Euler_step :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def euler_step (y_old,dt) :
        y=y_old*(1+dt)
        return y
    Merci.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : août 2010
    Messages : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    C'est bien ça. La version "midpoint" est quasi-identique. Il ne vous reste qu'à écrire la fonction euler(). Si vous avez du mal à voir dans quel ordre écrire tout ça, écrivez l'algorithme à la main :
    1. faire ceci
    2. faire cela
    3. si machin vaut truc faire cela
    4. ...


    Une fois que cela vous semble bon, vous pouvez le traduire en code. Le tour est joué.

    J

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Pour Euler j’ai envie d’écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def Euler (t_max,dt) :
      Lt=[0]
      Ly=[1]
       while (Lt[-1] < t_max) :
           t=t[-1]+dt
           y=euler_step(Ly[-1],dt)
           Lt.append(t)
           Ly.append.(y)
       return Lt, Ly
    Ensuite, pour illustrer la solution exacte et approchée via un graphe, je fais pour un dt=0.25 de la question 5 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Lt, LY = euler(10, 0.25)
     
    plt.plot(Lt,LY, ‘r’, Lt, np.exp(Lt), ‘b’)
    plt.show()
    L’ensemble est juste pour euler ? Je vais tenter mp maintenant.

    Merci.

  10. #10
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : août 2010
    Messages : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    Utilisez la balise code (icône #) pour présenter votre code, ce sera plus lisible.

    Vous avez tout: la boucle et la structure de stockage (la liste). Mais vous n'avez sans doute pas testé, car vous vous seriez aperçu d'un problème avec la variable t qui n'est pas définie. Vous faites t = t[-1] + dt. Vous vouliez sans doute dire t = Lt[-1] + dt et il y a un . de trop après un append.

    Sinon ça fonctionne. Faire la même avec midpoint c'est du gâteau. Vous pouvez après comparer avec l'exponentiel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import math
     
    t = liste(range(0, t_max, 1))
    y_exp = [math.exp(_t) for _t in t]

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Voici mes résultats.

    Cela me semble correct non ?

    Savez-vous comment réduire la taille de la légende, en terme de cadre ou de police ?

    Merci.

    Concernant mon dernier message que j’ai modifié entre temps, j’ai apparemment bien modifié au vu de votre dernière réponse.

    Pièce jointe 580992

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    J’obtiens une très bonne précision pour dt=0.001.

    De plus, pour la question 6, il demande d’illustrer l’erreur pour Euler et mp en fonction des temps en log-log. Pour dt=0.001 quand je l’élève à la puissance 2 (question 7), j’obtiens une erreur de mp qui fait n’importe quoi, en plus de la compilation qui est longue. Est-ce logique ? Ou juste en rapport avec la puissance de compilation de mon iPad ?

    Merci.

    Pièce jointe 581010Pièce jointe 581011Pièce jointe 581012

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Concernant l’erreur j’ai effectué cette différence, entre la valeur absolue de la différence entre ma liste de Y avec Euler ou Mp et exp(Lt) avec Lt ma liste des temps. Est-ce correct ? Mon échelle est en log en x et en y. Je reste septique concernant l’allure de mes courbes.

    Merci.

    Pièce jointe 581041

  14. #14
    Membre habitué Avatar de robinechuca
    Homme Profil pro
    PHELMA grenoble inp
    Inscrit en
    avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : PHELMA grenoble inp
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2019
    Messages : 108
    Points : 131
    Points
    131
    Par défaut
    Bonjour, je n'arrive pas a acceder aux pieces jointes.
    Mais peu importe, le but de votre code c'est de resoudre une equa-diff. Cette equa diff, elle vient surement pas de nul part, elle doit bien modeliser un vrai systeme physique? Une facon de verifier vos resultats c'est de vous poser la question: Est-ce que ces resultats ont un sens physique?
    Par exemple, si vous modelisez un condo qui se decharge, vous pouvez regarder que pour 't' grand, le resultat tend vers 0.
    Si vous modelisez un systeme qui oscille, assurer vous que quand vous tracez la courbe des vos resultats, elle oscille...

  15. #15
    Nouveau membre du Club Avatar de Youyayouyou
    Femme Profil pro
    Étudiant
    Inscrit en
    mai 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2020
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    Idem ... Je n'ai pas accès aux pièces jointes ...?

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Code PYTHON POUR LA METHODE D'euler IMPLICITE
    Bonjour, chers tous excusez !
    En effet , je viens de commencer a programmer Python.
    Ainsi donc , j' éprouve des difficultés pour écrire le code python pour la méthode d'Euler implicite .
    Pouvez-vous m'aider?

  17. #17
    Membre habitué Avatar de robinechuca
    Homme Profil pro
    PHELMA grenoble inp
    Inscrit en
    avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : PHELMA grenoble inp
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2019
    Messages : 108
    Points : 131
    Points
    131
    Par défaut
    Bonjour ice.ik
    Ce n'est pas un manque de volonté des membres de ce forum mais si vous nous donnez pas des informations plus précises, et que vous ne nous montrez pas le bout de code ou d'algorithme que vous avez tenté de mettre en œuvre. On ne pourra pas vous aider!

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonsoir, en effet , J'ai déjà trouvé une méthode pour écrire le code .
    Merci pour l'attention.

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

Discussions similaires

  1. methode split() python
    Par Naymux dans le forum Général Python
    Réponses: 3
    Dernier message: 10/07/2014, 13h34
  2. le role de la methode Main() en python
    Par rosty38 dans le forum Général Python
    Réponses: 10
    Dernier message: 20/07/2010, 15h35
  3. Réponses: 0
    Dernier message: 30/03/2009, 15h51
  4. Réponses: 3
    Dernier message: 08/03/2009, 10h50
  5. un Site Totalement en Python , quelle Methode ?
    Par kedare dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 11/12/2005, 13h07

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