login.php?sid=b1639415583c0ccc443dd09bf67a8d75 profile.php?mode=register&sid=b1639415583c0ccc443dd09bf67a8d75 faq.php?sid=b1639415583c0ccc443dd09bf67a8d75 memberlist.php?sid=b1639415583c0ccc443dd09bf67a8d75 search.php?sid=b1639415583c0ccc443dd09bf67a8d75 index.php?sid=b1639415583c0ccc443dd09bf67a8d75

Champ de pentes

 
Post new topic   Reply to topic     Forum Index -> Les CaRScripts
View previous topic :: View next topic  
Author Message
AntiMath



Joined: 20 Aug 2010
Posts: 13
Location: Antilles

PostPosted: Mon Aug 30, 2010 7:16 pm    Post subject: Champ de pentes Reply with quote

Bonjour, je m'intéresse à l'approche graphique d'équations différentielles, du type y'=f(x,y), avec par exemple f(x,y)=-y^2.
Je sais faire une macro qui à partir d'un point (x,y) trace le vecteur issu de ce point et d'extremités (x+1,y+f(x,y)) (ou le vecteur normé associé).
Je peux ainsi constater, une fois la courbe solution tracée, la coïncidence entre ce vecteur en un point de la courbe (macro) et la tangente à la courbe (outil tangente).
Je n'ai pas encore assimilé la notion de script Embarassed
Je voudrais savoir s'il y a moyen de faire tracer ce champ de vecteurs issus mettons de tous les points à coordonnées entières entre a=-5 et +5, par exemple? Est-ce qu'alors la valeur de a peut être un objet d'entrée? idem pour la fonction f?
Je ne sais pas si je suis bien clair Confused
Merci d'avance
Back to top
View user's profile Send private message
yves974
Site Admin


Joined: 30 Oct 2007
Posts: 261
Location: Réunion

PostPosted: Mon Aug 30, 2010 8:11 pm    Post subject: Reply with quote

Quelque chose comme ça peut-être (macro et script dans la figure)

Code:

for (i=0; i<10; i=i+1){
   for (j=0; j<10; j=j+1){
      k=10*i+j
      a=Point("A"+k,-5+i,-5+j);
      ExecuteMacro("PourAntiMath","f2,A"+k);
   }
}
Back to top
View user's profile Send private message
yves974
Site Admin


Joined: 30 Oct 2007
Posts: 261
Location: Réunion

PostPosted: Mon Aug 30, 2010 8:19 pm    Post subject: Reply with quote

Merci de cette question, super fun

(dans la figure précédente faite trop vite, il faut peut-être ouvrir le panneau de gauche pour voir f2 sinon c'est hors écran, désolé
Back to top
View user's profile Send private message
AntiMath



Joined: 20 Aug 2010
Posts: 13
Location: Antilles

PostPosted: Mon Aug 30, 2010 9:43 pm    Post subject: Reply with quote

Merci Smile très joli Cool

J'aime bien apprendre sur des exemples qui m'ont obligé à réfléchir;
là j'étais parti sur une mauvaise piste ...

Cependant, je ne comprends ta macro :
je ne sais pas (et ne sais pas comment savoir)
quel est l'objet de sortie?

Ensuite, dans le script, quel est le rôle du ''A'' ?

Merci d'avance !

PS :
pour la macro, je pense avoir compris, reste la question:
est-il possible d'éditer celle que tu as écrite?
pour le ''A'', j'en vois le rôle, mais quelle est la valeur par défaut?
il n'y a pas d'initialisation Sad
je vais réfléchir au rôle efficace de k
(dsl, je ne connais rien à javascript,
d'où mon erreur sur l'utilisation des boucles
et ma difficulté à décrypter au premier coup d'oeil)


PPS :
Bon, je dois fatiguer, mais je n'arrive plus, une courbe solution étant tracée, à obtenir la tangente en un point, même avec l'option dialogue Sad
d'ailleurs, je n'ai même pas de boîte de dialogue
(certes, je ne travaille pas sur le même portable, mais tout est dans mon DDE)
Back to top
View user's profile Send private message
yves974
Site Admin


Joined: 30 Oct 2007
Posts: 261
Location: Réunion

PostPosted: Tue Aug 31, 2010 9:14 am    Post subject: Reply with quote

AntiMath wrote:

Cependant, je ne comprends ta macro :
je ne sais pas (et ne sais pas comment savoir)
quel est l'objet de sortie?

Ensuite, dans le script, quel est le rôle du ''A'' ?


(les illustrations sont à l'envers, la première est en bas du post désolé, pas habitué à la polonaise inversée sur les illustrations)

Pour la macro j'ai fait ce que tu as dit : le point P3 donné par le calcul (illustration. Cercle de rayon fixe pour prendre des vecteurs unitaires. La macro renvoie le vecteur comme objet final à partir de la formule et de M comme initiaux

Spécial Eric (si tu passes par là) : il semble bien qu'il ne faille pas mettre la fonction en implicite, en script j'ai eu l'impression (fait trés vite) que ça retient pas les implicites, mais pas grave ça fonction très bien sans et comme on a rien à montrer à la souris, je comprends bien que ça ne sert pas de traiter les implicites en script.

L'histoire du nommage du point : là aussi c'était fait en vitesse donc sans réfléchir, une option plus savante aurait été de mettre un "f2,_a" si a est le nom de la variable JS du point construit.

Comme je avais pas trop envie de tester, j'ai mis un point A mais comme on dit en créer beaucoup il faut les indexer (sinon ça fait des A*** jusqu'à 100 étoiles (j'ai déjà fait ça au début de mon exploration des scripts)

Pour l'index, des choses comme "A"+i+j ne va pas non plus soit parfois ça somme soit quand on dépasse 10 ça va pas d'où le k=10*i+j et pour une amplitude de plus de 10 sur i ou j tu prendrais 100*i+j ça irait bien, tu peux d'ailleurs voir le nom des points.

Bon mais là je viens de tester, ce code fonctionne très bien
(attention si tu fais dans une nouvelle figure il faut récupérer la macro et la rendre "de bibliothèque" pour qu'elle soit dispo dans tous le classeur.

Code:
for (i=0; i<24; i=i+1){
   for (j=0; j<24; j=j+1){
      a=Point(-5+i/2,-5+j/2);
      ExecuteMacro("PourAntiMath","f1,_a");
   }
}


et c'est plus propre

Sinon pour adapter avec CaRMetal, ou comprendre le principe d'un point de vue totalement géométrique, mes anciennes pages Cabri (de 2001 !!!) sur le sujet (c'est pour ça que j'ai fait vite, c'est une vieille histoire tout ça)

http://www.reunion.iufm.fr/Dep/Mathematiques/abracadabri/Courbes/EquaDiff/EDiffGene.html

Serait à reprendre avec des scripts et des choses un peu plus contemporaines ...
Back to top
View user's profile Send private message
monique31



Joined: 03 Nov 2007
Posts: 306
Location: Toulouse

PostPosted: Tue Aug 31, 2010 4:04 pm    Post subject: Reply with quote

AntiMath wrote:
Ensuite, dans le script, quel est le rôle du ''A'' ?

Si tu regardes la première figure envoyée par Yves et que tu actives l'outil "clé à molette", tu verras que tous les points s'appellent : A11, A12 ou des trucs du genre. Car en javascript le signe + est utilisé pour la concaténation de chaines de carctères : donner à un point le nom "A"+4, c'est en fait lui imposer de s'appeler A4.
C'est pourquoi le second script d'Yves est un peu plus simple : aucun nom n'étant imposé aux points (inutile ici), ils vont s'appeler automatiquement P1, P2 etc jusque P100.

En voyant les exemples proposés dans la discussion, j'ai eu envie d'y ajouter un autre script : celui qui donne les solutions approchées par la méthode d'Euler. Script expliqué pas à pas sur le site dans les tutoriels récents. Il m'a suffi de remplacer une ligne, celle avec la fonction ; ce qui donne :
Code:
m="A";
p="B";

n=Input("Nombre d'itérations ?");

for (i=0; i<n; i=i+1){
   a=Point("x_m+(x(B)-x(A))/_n","y_m+(x(B)-x(A))/_n*f2(x_m,y_m)");
   SetHide(a,true);
   s=Segment(m,a);SetHide(s,true);
   m=a;
}

En faisant tourner le script, j'ai demandé 50 itérations.
Petit changement : les points et segments ont été cachés !!! Mais c'est pour appliquer à la fin la "vraie" méthode d'Euler : avec la baguette magique on affiche tout ce qui est caché, puis on demande le lieu du 50 ième point (clic sur le point) quand B varie (clic sur B). On obtient ceci :



Bien évidemment tout est dynamique : le curseur peut varier, les points A et B également. Et la fonction f2 redéfinie par un simple clic-droit : tout se remet à jour.

As-tu encore des questions sur les macros ou sur autre chose ?
Back to top
View user's profile Send private message Send e-mail
AntiMath



Joined: 20 Aug 2010
Posts: 13
Location: Antilles

PostPosted: Tue Aug 31, 2010 6:21 pm    Post subject: Reply with quote

Bonjour,
et merci à tous deux pour ces réponses précises et intéressantes Cool

monique31 wrote:

As-tu encore des questions sur les macros ou sur autre chose ?


Eh bien, ça ne saurait tarder Rolling Eyes
Back to top
View user's profile Send private message
monique31



Joined: 03 Nov 2007
Posts: 306
Location: Toulouse

PostPosted: Wed Sep 01, 2010 5:30 am    Post subject: Reply with quote

AntiMath wrote:
pour la macro, je pense avoir compris, reste la question:
est-il possible d'éditer celle que tu as écrite?

Une méthode très simple pour savoir ce qu'une macro a dans le ventre !
Je viens de le faire avec la macro PourAntimath.
La rendre de bibliothèque (voir tuto sur les macros)
L'utiliser sur une figure vide dans un nouvel onglet (avec juste les initiaux dont on a besoin, ici c'est une fonction)
Afficher l'historique : faire un clic-droit dans une zone vide de ce panneau et alors décocher "objets visibles" ; j'obtiens ceci



Il y a les objets visibles, les cachés en plus pâle et les objets intermédiaires qui sont super cachés, en plus pâle mais entre parenthèses.
Par un clic droit sur chacun on obtient une boite de dialogue qui permet de les rendre à nouveau visibles : on retrouve alors le dessin de la construction.
Puis un double-clic (sur P3 par exemple) permet de retrouver dans la barre de propriétés les formules de définition en cas de besoin.

C'est une méthode que j'ai souvent employée pour décortiquer des macros très subtiles (fabriquées par Eric par exemple ...) et c'est fou tout ce que j'y ai appris !!!
Back to top
View user's profile Send private message Send e-mail
AntiMath



Joined: 20 Aug 2010
Posts: 13
Location: Antilles

PostPosted: Wed Sep 01, 2010 11:07 pm    Post subject: Reply with quote

monique31 wrote:

C'est une méthode que j'ai souvent employée pour décortiquer des macros très subtiles (fabriquées par Eric par exemple ...) et c'est fou tout ce que j'y ai appris !!!


C'est fou ce qu'on apprend grâce aux autres,
alors merci Cool
(peut-être un jour apprendrai-je quelque chose à quelqu'un Confused )
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Les CaRScripts All times are GMT
Page 1 of 1

 
  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin