| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Sam Mai 10, 2008 2:08 pm Sujet du message: Création de macros avancées : méthode d'Euler |
|
|
Bonjour,
Je cherche à faire découvrir à mes 1e S la méthode d'Euler (sur un exemple). CaRMetal propose une création de macros très facile, qui me permet, à partir d'un point de départ, de la fonction à "intégrer" et d'un pas h, de créer un nouveau point par approximation affine.
Mais un seul ! Et je suis donc obligé de réitérer l'opération (macro personnelle Euler) autant de fois que nécessaire...
Or l'intérêt est de se fixer un intervalle (par exemple [0;2]) puis créer autant de points que nécessaire pour couvrir cet intervalle. Ensuite, on augmente le nombre de points pour voir la précision augmenter. Et je ne vois pas comment faire. Est-ce possible (à partir des if ou while) ?
Merci,
Rémy.
| Description: |
Méthode d'Euler appliquée à la fonction f(x) = 1/(1+x^2).
Ici h = 0,1 et l'intervalle est [0;2]. |
|
 Download |
| Filename: |
Euler20.zir |
| Filesize: |
14.64 KB |
| Downloaded: |
313 Time(s) |
| Description: |
| Méthode d'Euler appliquée à la fonction f(x) = 1/(1+x^2) |
|
 Download |
| Filename: |
Euler4.zir |
| Filesize: |
6.88 KB |
| Downloaded: |
293 Time(s) |
|
|
| Revenir en haut de page |
|
 |
monique31
Inscrit le: 03 Nov 2007 Messages: 297 Localisation: Toulouse
|
Posté le: Sam Mai 10, 2008 8:26 pm Sujet du message: |
|
|
Très jolie la figure ! Et c'est sûr que c'est très facile à faire faire par des élèves. En plus les élèves adorent faire des macros.
Bon, je réponds d'abord à la question.
Les if existent, mais pas les while. Donc les boucles ne sont pas possibles.
Alors je propose une méthode simple pour résoudre ton problème (voir fichier joint)
- j'ai repris exactement ta construction et ta macro, sauf que h je l'ai appelé k, et que je ne l'ai pas mis sous forme de curseur : c'est une simple expression posée sur le bureau. Et dans les propriétés de la macro j'ai déclaré f et k comme "fixes". Attention, dire que k est fixe veut simplement dire qu'il est implicite, c'est à dire non demandé lors de l'exécution de la macro. Pour le faire varier, il suffit d'un clic-droit sur l'expression.
- ensuite cette macro je l'ai utilisée 10 fois, en faisant très attention à l'apparence des objets une fois le travail fini : les 9 premiers points sont bleus et pales, le dixième est rouge et foncé
- puis j'ai transformé çà en macro ! Mais c'est là qu'il y a une super astuce (çà c'est une trouvaille de René Grothmann) : objets initiaux k, la fonction, le point A0 ; objets finaux : aucun !!!!!!!! Puis la macro a été enregistrée sous le nom de "Euler 10 fois". Quand on ne déclare aucun objet final, c'est toute la construction ultérieure qui est enregistrée dans la macro, les objets gardant leurs formes couleurs etc.
Tu peux même ensuite t'amuser et faire une macro "Euler 100 fois" en appliquant celle là 10 fois et en transformant à nouveau le tout en macro.
Ensuite si tu veux recouvrir exactement l'intervalle [0;2] un clic-droit sur k pour lui donner la bonne valeur en fonction du nombre d'étapes désirées.
Parenthèse : René Grothmann a écrit un très bel article sur quelque chose un peu du même genre, avec les suites de points et des fractales, par macros. C'est l'article de CaRzine intitulé "fun macros", page 4 de "CaRzine".
| Description: |
|
 Download |
| Filename: |
Euler_monique.zir |
| Filesize: |
46.68 KB |
| Downloaded: |
306 Time(s) |
|
|
| Revenir en haut de page |
|
 |
Hesperion
Inscrit le: 11 Nov 2007 Messages: 213 Localisation: Blois
|
Posté le: Dim Mai 11, 2008 8:24 am Sujet du message: |
|
|
Si je peux me permettre une optimisation :
Si j'ai bien suivi, tu as créé la primitive F de f, puis tu as placé A0 appartenant à la courbe représentative.
Seulement le fait de créer la primitive F de f l'inclus dans tout ce que créé la macro, ce qui rend la manipulation un peu lourde au bout d'un 100aine d'itérations (avec 100 fois la courbe de F) !
En fait, l'utilité de cette méthode est lorsqu'on ne peut pas avoir facilement F, donc autant ne pas la créer tout de suite. Par contre, on peut connaître facilement certains points de F, ici F(0) = 0 étant donné la définition de F.
On applique la méthode d'Euler, et on vérifie en traçant F.
Voila, en espérant ne pas raconter trop de bêtises.
| Description: |
|
 Download |
| Filename: |
Euler pm.zir |
| Filesize: |
12.81 KB |
| Downloaded: |
290 Time(s) |
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 1:07 pm Sujet du message: |
|
|
Merci à vous !
En fait, je cherche même à fixer l'intervalle, puis à augmenter le nombre n de pas (curseur ou expression, peu importe j'imagine) ; l'idéal étant que le logiciel crée automatiquement n points avec la méthode d'Euler.
Mais je vais chercher du côté des objets auto-référents ! En plus j'aime bien les fractals...
Si je trouve du nouveau je balance mes fichiers ici ! Merci encore.
PS : Je viens de découvrir (il y a deux-trois mois) CaRMetal, donc mes élèves n'en profitent pas trop cette année --- en plus je suis néo-titulaire. Et le niveau de mes 1e S est bien faible, donc ça m'aurait pris du temps de les initier à ce logiciel et en particulier aux macros ! Peut-être l'an prochain...
|
|
| Revenir en haut de page |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Dim Mai 11, 2008 1:16 pm Sujet du message: |
|
|
Bon super tout ça ... j'aime bien la _pm.
Je voulais faire remarquer que c'est du Euler explicite et sur cette fonction là on doit pouvoir faire aussi de l'implicite (désolé je suis sur d'autres trucs pas vraiment le temps de regardé tout de suite, mais ce soir probablement ..)
En plus l'intérêt des deux est que la moyenne est d'ordre 2 (en 1/n2 quoi) au lieu d'être en 1/n. La moyenne correspond à la méthode des trapèzes en fait.
Comme je sais pas trop intégrer une image dans le forum, je vous propose de lire ça : c'est la seconde image à adapter à la fonction
http://revue.sesamath.net/spip.php?article10
Si on est courageux, la vidéo explique bien aussi.
Si vous n'avez pas fait la figure avant, je devrais la poster sur le forum dans la soirée (ça me servira pour ma formation CaRMetal mardi, alors merci .
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 1:47 pm Sujet du message: |
|
|
En fait, la méthode d'Euler proposée par les programmes du lycée se base sur l'approximation affine f(a+h) "=" f(a)+hf'(a). En première, on ne propose pas d'équation fonctionnelle du genre y' = y, auquel cas on pourrait appliquer la méthode d'Euler comme dans le lien fourni...
Ici il me semble que ce ne sera pas possible d'adapter le procédé, mais je voudrais bien me tromper (comme ça, ça m'obligerait à me replonger dans le calcul numérique)...
En revanche, en TS, ça devient faisable !
|
|
| Revenir en haut de page |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Dim Mai 11, 2008 1:59 pm Sujet du message: |
|
|
| OK pour la TS effectivement. Mais moi aussi je vais chercher quand même dès que j'ai un moment ...
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 2:07 pm Sujet du message: |
|
|
| Cela dit, je ne vois pas du tout à quelle construction géométrique on peut relier la méthode explicite...
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 2:30 pm Sujet du message: |
|
|
| Bon, pour en revenir à mon problème initial, mon désir serait que CaRMetal me construise automatiquement autant de points que nécessaire pour couvrir un intervalle donné ([0;2] par exemple). Et je ne sais pas comment faire !
|
|
| Revenir en haut de page |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Dim Mai 11, 2008 2:40 pm Sujet du message: |
|
|
Si j'ai bien compris tu cherche à résoudre graphiquement y'=1/(1+x^2)
La méthode Euler explicite est du genre y(t0+h) = y(t0)+hy'(t0)
Jusque là ça va.
Le "si j'ai bien compris" commence là :
La méthode implicite serait alors y(t0+h) = y(t0)+hy'(t0+h)
Et là comme c'est juste un calcul de primitive, effectivement la méthode implicite est on ne peux plus explicite : ce sont (peut-être pas tout à fait , mais on dirait que si) les rectangle à gauche d'un côté et à gauche de l'autre à droite. Bilan la moyenne est la méthode du point médian qui est équivalente à dcelle du trapèze. Bref on retombe sur ses pattes mais c'est pas transcendant du tout parce que c'est juste une primitive.
Bon, du coup c'est moins motivant qu'une vraie équadif (je me voyais déjà avec l'otiil fonction implicite de Eric) mais je vais quand même regarder ça ..
|
|
| Revenir en haut de page |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Dim Mai 11, 2008 2:41 pm Sujet du message: |
|
|
| OK OK on va revenir au problème initial, d'accord, on laisse tomber le reste d'autant que c'est un vrai problème ...
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 2:48 pm Sujet du message: |
|
|
| Non, non, c'est intéressant ! Je vais revoir ça. Mais du coup on fait la construction en utilisant en quelque sorte la tangente au point suivant; Je n'y pensais pas.
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
|
| Revenir en haut de page |
|
 |
Remy

Inscrit le: 04 Mai 2008 Messages: 40 Localisation: Nanterre
|
Posté le: Dim Mai 11, 2008 6:28 pm Sujet du message: |
|
|
Méthode d'Euler implicite cette fois-ci, toujours avec la condition que les abscisses soient inférieures à 2. (Bon, en fait, c'est nul comme restriction !)
Je rajoute également la méthode des trapèzes, d'après Yves. Bon, le souci c'est que je fabrique du coup des expressions horribles pour les coordonnées de points...
C'est un essai !
| Description: |
|
 Download |
| Filename: |
Méthode-trapèzes.zir |
| Filesize: |
42.27 KB |
| Downloaded: |
292 Time(s) |
| Description: |
| Méthode d'Euler implicite |
|
 Download |
| Filename: |
Euler-implicite.zir |
| Filesize: |
33.96 KB |
| Downloaded: |
311 Time(s) |
|
|
| Revenir en haut de page |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Dim Mai 11, 2008 6:53 pm Sujet du message: |
|
|
Bon ben moi j'aborde un autre point de vue. Je fais les construction entre 0 et x ( en fait entre A0(x0,y0) et x et ensuite j'ai mis, aprés toutes les constructions A0(0, 0) - plus facile pour les macros.
Cela ne correspond probablement pas à ce que tu veux, mais c'est pour montrer que, fondamentalement ce que cherchait Euler c'était le point (x, f(x)) et que quand x varie, la fonction est - généralement comme ici - C infini.
Sur la figure jointe j'ai forcé - voir pourquoi plus loin - sur un Euler256pas (le point final est le 818 iem et la "courbe rouge" (qu'on voit à peine car j'ai construit la solution par dessus - est composée (par macro) de 256 segments. On peut cacher la solution f1 pour voir la courbe du lieu des (x,y) obtenus par 256 pas.
Note : cette figure est trop lourde pour être ouverte avec la 288 (on peut mais ça bloque un peu quoi). Prendre la webstart car Eric, ce WE - pour tout autre chose - a amélioré des choses là dessus et du cout au lieu de faire un Euler64pas "traditionnel", j'ai fait un 256 pas mais sans la webstart ça rame un max
Donc les courbes sont les courbes C-infini qui correspondent aux approximations d'Euler quand x varie et non pas des affines par morceau comme on dit dans les livres scolaires.
On notera que le 256 pas est proche de la solution exacte même loin (trés lin, à 2) de l'origine ...
A ce sujet lire le commentaire de Dominique Tournès (prof d'université, spécialiste de la question) dans cette page, à la fin :
http://www-cabri.imag.fr/abracadabri/Courbes/EquaDiff/ApprxO1.html
Pour tes courbes ça aurait été bien de mettre implicite et explicite sur la même. Je n'ai pas fait implicite, par paresse, je vais le refaire avec 64 pas seulement.
| Description: |
|
 Download |
| Filename: |
Euler256pas.zip |
| Filesize: |
44.4 KB |
| Downloaded: |
454 Time(s) |
Dernière édition par yves974 le Dim Mai 11, 2008 8:31 pm; édité 1 fois |
|
| Revenir en haut de page |
|
 |
|