CaRMetal-FR

Forum des utilisateurs francophones
login.php?sid=404a9c74705df20512c36b66fa2cccb0 profile.php?mode=register&sid=404a9c74705df20512c36b66fa2cccb0 faq.php?sid=404a9c74705df20512c36b66fa2cccb0 memberlist.php?sid=404a9c74705df20512c36b66fa2cccb0 search.php?sid=404a9c74705df20512c36b66fa2cccb0 index.php?sid=404a9c74705df20512c36b66fa2cccb0

Création de macros avancées : méthode d'Euler
Aller à la page 1, 2, 3  Suivante
 
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Utilisation de CaRMetal
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Sam Mai 10, 2008 2:08 pm    Sujet du message: Création de macros avancées : méthode d'Euler Répondre en citant

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) ? Smile

Merci,
Rémy.



Euler20.zir
 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:  315 Time(s)


Euler4.zir
 Description:
Méthode d'Euler appliquée à la fonction f(x) = 1/(1+x^2)

Download
 Filename:  Euler4.zir
 Filesize:  6.88 KB
 Downloaded:  295 Time(s)

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
monique31



Inscrit le: 03 Nov 2007
Messages: 297
Localisation: Toulouse

MessagePosté le: Sam Mai 10, 2008 8:26 pm    Sujet du message: Répondre en citant

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".



Euler_monique.zir
 Description:

Download
 Filename:  Euler_monique.zir
 Filesize:  46.68 KB
 Downloaded:  308 Time(s)

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
Hesperion



Inscrit le: 11 Nov 2007
Messages: 213
Localisation: Blois

MessagePosté le: Dim Mai 11, 2008 8:24 am    Sujet du message: Répondre en citant

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.



Euler pm.zir
 Description:

Download
 Filename:  Euler pm.zir
 Filesize:  12.81 KB
 Downloaded:  292 Time(s)

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 1:07 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Dim Mai 11, 2008 1:16 pm    Sujet du message: Répondre en citant

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 Wink.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 1:47 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Dim Mai 11, 2008 1:59 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 2:07 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 2:30 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Dim Mai 11, 2008 2:40 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Dim Mai 11, 2008 2:41 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 2:48 pm    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 3:10 pm    Sujet du message: Répondre en citant

Retour aux sources ! Wink

Malheureusement ce n'est toujours pas ce qu'il me faut précisément. Mais je vais y regarder (à l'aide du conseil de Monique).



EulerNV.zir
 Description:
J'ai ici rajouté une condition sur les points créés : leurs abscisses doivent appartenir à [0;2]. On peut aussi modifier les conditions initiales.

Download
 Filename:  EulerNV.zir
 Filesize:  27.71 KB
 Downloaded:  264 Time(s)

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Remy



Inscrit le: 04 Mai 2008
Messages: 40
Localisation: Nanterre

MessagePosté le: Dim Mai 11, 2008 6:28 pm    Sujet du message: Répondre en citant

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 !



Méthode-trapèzes.zir
 Description:
Méthode des trapèzes

Download
 Filename:  Méthode-trapèzes.zir
 Filesize:  42.27 KB
 Downloaded:  294 Time(s)


Euler-implicite.zir
 Description:
Méthode d'Euler implicite

Download
 Filename:  Euler-implicite.zir
 Filesize:  33.96 KB
 Downloaded:  313 Time(s)

Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Dim Mai 11, 2008 6:53 pm    Sujet du message: Répondre en citant

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.



Euler256pas.zip
 Description:

Download
 Filename:  Euler256pas.zip
 Filesize:  44.4 KB
 Downloaded:  456 Time(s)



Dernière édition par yves974 le Dim Mai 11, 2008 8:31 pm; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Utilisation de CaRMetal Toutes les heures sont au format GMT
Aller à la page 1, 2, 3  Suivante
Page 1 sur 3

 
  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Traduction par : phpBB-fr.com