Méthodes d'Euler et Runge-Kutta 2

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par fakbill » 10 mai 2016 20:46

Ben n instructions python comparé à une instruction qui est codé en C (ou en fortran je ne sais pas) en dessous.
Non ça ne doit pas être un pb d'arrondis sauf si le pas est tout petit.
Je vais voir si j'ai le temps de faire tourner le code pour voir ce qui merdouille.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par fakbill » 10 mai 2016 20:50

heu à vue comme ça...où as tu UN float? Car je ne vois que des entiers...ça va assez mal se passer car entier/entier...python2 ou python3?
Qq la réponse, est est mauvaise de se baser sur ce genre de features...mets moi des floats partout (sauf pour n...)
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 0

Inscription : 24 nov. 2015 19:51

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par DMIII » 10 mai 2016 22:27

Ok je vais faire ça, je m'étais pas posé la question :)

Messages : 0

Inscription : 11 déc. 2015 08:24

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par left_shift » 11 mai 2016 07:38

deltaT est un float donc tous les termes dans les listes seront aussi des floats.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par fakbill » 11 mai 2016 08:55

deltaT = t_lim/n / en python2 c'est un int. en 3 c'est un float.
Je ne dis pas que c'est le problème mais c'est une très mauvaise pratique car c'est source d'erreur. Pourquoi s'autotendre des pièges?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 0

Inscription : 11 déc. 2015 08:24

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par left_shift » 11 mai 2016 10:02

Bon en fait l'erreur est grossière, tellement grossière que je ne l'ai pas vue au premier coup d'œil…

Dans la fonction Euler, les deux instructions que tu réalises séquentiellement :

Code : Tout sélectionner

x = x+deltaT*F(x,y)
y = y+deltaT*G(x,y)
doivent en réalité être réalisées en parallèle. En effet après ta première ligne de code x est modifié alors qu'il faut utiliser l'ancienne valeur de x dans la seconde ligne. Il faut donc écrire à la place de ces deux lignes :

Code : Tout sélectionner

x, y = x+deltaT*F(x,y), y+deltaT*G(x,y)
En revanche, rk2 est correcte puisque tu utilises des variables intermédiaires.

Une fois modifié, voici ce qu'on obtient avec n = 5000 :
Image

Messages : 0

Inscription : 24 nov. 2015 19:51

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par DMIII » 11 mai 2016 12:19

Ah mince j'avais pas remarqué en effet... :D du coup en corrigeant cette erreur j'ai bien le résultat attendu pour l'oscillateur harmonique :D
fakbill a écrit :deltaT = t_lim/n / en python2 c'est un int. en 3 c'est un float.
Je ne dis pas que c'est le problème mais c'est une très mauvaise pratique car c'est source d'erreur. Pourquoi s'autotendre des pièges?
J'ai tout passé en float pour être sûr (sauf n) et j'obtiens le même résultat. Mais effectivement je vais tâcher de prendre des bonnes habitudes pour éviter les erreurs.
Merci !

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par fakbill » 11 mai 2016 14:18

Bien vu :)
DMIII : oui, tout de monde devrait maintenant apprendre le python3 mais pour de sombre raisons de mises à jour non faites certains lycées vont encore bosser avec la version2 :(
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Avatar de l’utilisateur
np*

Messages : 0

Inscription : 28 nov. 2015 14:49

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par np* » 15 mai 2016 01:32

Dernière modification par np* le 17 mai 2016 11:43, modifié 1 fois.
$ $P = N\!P^* ?$ $

Messages : 0

Inscription : 10 juin 2015 22:44

Profil de l'utilisateur : Élève de lycée

Re: Méthodes d'Euler et Runge-Kutta 2

Message par Ewind » 15 mai 2016 14:43

Ta vidéo date de 2013.

Répondre