Points d'intersection de deux courbes

Voir le sujet précédent Voir le sujet suivant Aller en bas

Points d'intersection de deux courbes

Message  Eric Kouris le Dim 5 Oct - 1:00

J'aimerais représenter de différentes façon les points d'intersection de deux courbes pour faire apparaître les différents 4-cycles d'un système dynamique.

Y a-t-il moyen de visualiser les points d'intersection à l'aide d'un carré, d'un cercle, d'un triangle ?

Par exemple, sur le système suivant, j'aimerai pouvoir différencier des quadruplets de points de l'intersection des courbes Px et Py

Code:

% TeXgraph version 1.93
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.4#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#8##
% Affectation des Variables theta et phi
18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##
% Déclaration des Variables Globales
15#a#2.07##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0,NbPoints:=300]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Courbe cartés.)
18##[Width:=2,NbPoints:=50,tMin:=-1.2,tMax:=1.2]##
21#objet4#x#5##
% objet5 (Label)
18##[LabelAngle:=10]##
8#objet5#[ 0.45-.85*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelAngle:=-70]##
8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelSize:=2,LabelAngle:=0]##
8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.6*(1+i) ]#$y=x$##

Encore merci.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Dim 5 Oct - 1:16

Re-bonsoir Eric,

Ajoute cet élément graphique utilisateur à ton fichier:

Code:

[L:= Get(Cartesienne(1-a*(1-a*x^2)^2),0) InterL
      Get(Courbe(1-a*(1-a*t^2)^2+i*t),0),
Color:=red, DotStyle:=bigdot, k:=1,
for z in L do LabelDot(z,k,"N",1), Inc(k,1) od


On met dans L la liste des points d'intersection des deux courbes. Pour mieux les visualiser je te les ai afficher avec leur numéro d'apparition dans la liste. Je ne sais pas trop ce que tu veux dessiner avec, mais si par exemple tu veux relier les points 11 12 13 et 14 par une ligne polygonale:
Ligne([ L[11], L[12], L[13], L[14]], 1)
ou encore
Ligne(L[11,4],1)

PS: la variable L est locale à cet élément.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Dim 5 Oct - 1:34

Je voudrais par exemple que les points 4, 5, 15 et 16 apparaissent avec un triangle à la place du bigdot, que les points 2, 3, 8 et apparaissent avec un carré et les points 6, 10, 12 et 14 apparaissent avec un cercle. Mais ça nécessite d'avoir à disposition de nouveaux codages graphiques des points.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Dim 5 Oct - 11:48

Bonjour Eric,

J'ai (enfin) compris ce que tu voulais faire avec les cercles triangles etc. Cela rejoint une question d'Alphonse sur le peu de styles de points et la nécessité de faire quelque chose pour y remédier. Je te propose la macro [drawDot( liste de points, [options] )[/b] où les options sont:

- dotstyle:= circle ou triangle ou square ou dot ou cross (dot par défaut)
- dotscale:= échelle (1 par défaut)

Voici la macro:

Code:

{drawDot( liste, [options] )
options:
  dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
  dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
 SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
 $default:=0.15,
 if dotstyle=circle then
    for $z in %1 by 1 do
        Rcercle(z,default*dotscale/1.5)
    od
 elif dotstyle=triangle then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
      od
 elif dotstyle=square then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
      od
 elif dotstyle=dot then
      FillColor:=Color,
      for $z in %1 by 1 do
          Rcercle(z,default*dotscale/1.5)
      od
 elif dotstyle=cross then
      FillStyle:=none,
      for $z in %1 by 1 do
          Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
              z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
      od
 fi,
 RestoreAttr() ]

Voici ton fichier avec l'utilisation de cette macro:

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#5#5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0.5#0.5#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.07##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
  dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
  dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
 SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
 $default:=0.15,
 if dotstyle=circle then
    for $z in %1 by 1 do
        Rcercle(z,default*dotscale/1.5)
    od
 elif dotstyle=triangle then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
      od
 elif dotstyle=square then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
      od
 elif dotstyle=dot then
      FillColor:=Color,
      for $z in %1 by 1 do
          Rcercle(z,default*dotscale/1.5)
      od
 elif dotstyle=cross then
      FillStyle:=none,
      for $z in %1 by 1 do
          Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
              z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
      od
 fi,
 RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelAngle:=10]##
8#objet5#[ 0.45-.85*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelAngle:=-70]##
8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelSize:=2,LabelAngle:=0]##
8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.6*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL
      Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, DotStyle:=bigdot, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[1,3], [dotstyle:=triangle]),
drawDot(L[4,3], [dotstyle:=circle]),
drawDot(L[7,3], [dotstyle:=dot]),
drawDot(L[10,3], [dotstyle:=square]),
drawDot(L[13,3], [dotstyle:=cross]),
]#-1##

ce qui donne:

PS: j'ai ramené le nombre de points de tes courbes de 300 à 50, cela ne change rien à la qualité, mais les fichiers exportés sont bien moins lourds! J'ai aussi changé aussi la courbe y=x en une droite.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Dim 5 Oct - 11:57

Superbe. Je vais analyser ton code pour remettre ensembles les points qui vont ensemble et je te reposte le tout, ça te fera un exemple de plus.

Désolé de t'embêter avec plein de demande d'un coup. Je finis la traduction que j'ai en cours par les figures (pour la proposer à des éditeurs dans la foulée).

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Dim 5 Oct - 11:59

Bon, j'ai un problème, TexGraph m'annonce une erreur en lecture numérique après un %, un entier est attendu. Est-ce que cela vient du fait que j'utilise la version 1.93 et que ton fichier est en version 1.94 ?

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Dim 5 Oct - 12:33

Eric Kouris a écrit:Bon, j'ai un problème, TexGraph m'annonce une erreur en lecture numérique après un %, un entier est attendu. Est-ce que cela vient du fait que j'utilise la version 1.93 et que ton fichier est en version 1.94 ?

Effectivement, voici une version pour 1.93 (mais je te conseille de passer à la 1.94 quand tu pourras, même si c'est encore une version test):

Code:

% TeXgraph version 1.93

% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale

100#-1.3#1.3#-1.3#1.3#5#5##

% Marges gauche droite haut bas cadre gestion_couleur comptgraph

101#0.5#0.5#0.5#0.5#0#1#1##

% Affectation des Variables theta et phi

18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##

% Déclaration des Variables Globales

15#a#2.07##

% Déclaration des Macros

16#drawDot#{drawDot( liste, [options] )
options:
  dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
  dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
 SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
 $default:=0.15,
 if dotstyle=circle then
    for $z in %1 do
        Rcercle(z,default*dotscale/1.5)
    od
 elif dotstyle=triangle then
      for $z in %1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
      od
 elif dotstyle=square then
      for $z in %1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
      od
 elif dotstyle=dot then
      FillColor:=Color,
      for $z in %1 do
          Rcercle(z,default*dotscale/1.5)
      od
 elif dotstyle=cross then
      FillStyle:=none,
      for $z in %1 do
          Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
              z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
      od
 fi,
 RestoreAttr()
]##

% Déclaration des Eléments graphiques

% objet1 (Axes)

18##[Arrows:=1,LabelSize:=1]##

1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##

% objet2 (Courbe cartés.)

18##[Width:=5,Arrows:=0]##

21#objet2#1-a*(1-a*x^2)^2#5##

% objet3 (Courbe param.)

3#objet3#1-a*(1-a*t^2)^2+i*t#5##

% objet4 (Droite)

18##[Width:=2]##

6#objet4#[ 0,1+i ]#0#0##

% objet5 (Label)

18##[LabelAngle:=10]##

8#objet5#[ 0.45-.85*i ]#$x=P(y)$##

% objet6 (Label)

18##[LabelAngle:=-70]##

8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##

% objet7 (Label)

18##[LabelSize:=2,LabelAngle:=0]##

8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##

% objet8 (Label)

18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##

8#objet8#[ -0.6*(1+i) ]#$y=x$##

% objet10 (Utilisateur)

18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##

14#objet10#[$L:= Get(Courbe(t+i*(1-a*(1-a*t^2)^2))) InterL
      Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, DotStyle:=bigdot, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[1,3], [dotstyle:=triangle]),
drawDot(L[4,3], [dotstyle:=circle]),
drawDot(L[7,3], [dotstyle:=dot]),
drawDot(L[10,3], [dotstyle:=square]),
drawDot(L[13,3], [dotstyle:=cross]),
]
#-1##


_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Dim 5 Oct - 12:35

Ok, je suis volontaire pour passer à la 1.94 (je sais, je ne devrais pas), mais je signe où ? Je n'ai pas vu de lien pour la télécharger.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Dim 5 Oct - 12:41

La version test est dans la rubrique: Version à tester (sujet Version 1.94/premier post).

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Lun 6 Oct - 10:59

J'ai installé la version 1.94, j'ai fait un copier-coller de ton code dans un élément utilisateur et j'ai encore le même problème, à savoir :
Erreur en lecture numérique après un %, un entier est attendu.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Lun 6 Oct - 11:19

Eric Kouris a écrit:J'ai installé la version 1.94, j'ai fait un copier-coller de ton code dans un élément utilisateur et j'ai encore le même problème, à savoir :
Erreur en lecture numérique après un %, un entier est attendu.

Salut Eric,

Le code que je t'ai donné est un fichier source, c'est à enregistrer dans un fichier *.teg! Il est normal que ce code dans un élément Utilisateur coince!

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Lun 6 Oct - 11:39

J'allais répondre parce que je venais de comprendre où était mon erreur ... et j'arrivais exactement à ta conclusion ... Encore désolé pour le dérangement.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Lun 6 Oct - 22:47

Voila où j'en suis rendu et ça a presque la tête que je veux.

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.1##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
  dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
  dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
 SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
 $default:=0.15,
 if dotstyle=circle then
    for $z in %1 by 1 do
        Rcercle(z,default*dotscale/1.5)
    od
 elif dotstyle=triangle then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
      od
 elif dotstyle=square then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
      od
 elif dotstyle=dot then
      FillColor:=Color,
      for $z in %1 by 1 do
          Rcercle(z,default*dotscale/1.5)
      od
 elif dotstyle=cross then
      FillStyle:=none,
      for $z in %1 by 1 do
          Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
              z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
      od
 fi,
 RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelStyle:=4,LabelAngle:=8]##
8#objet5#[ 0.5-.9*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelStyle:=1,LabelAngle:=0]##
8#objet6#[ 1-0.3*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelStyle:=0,LabelSize:=2]##
8#objet7#[ -1+1.3*i ]#$a=2$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.55*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL
      Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[2,2], [dotstyle:=square]),
drawDot(L[8,2], [dotstyle:=square]),
drawDot(L[4,2], [dotstyle:=triangle]),
drawDot(L[15,2], [dotstyle:=triangle]),
drawDot(L[6], [dotstyle:=circle]),
drawDot(L[10], [dotstyle:=circle]),
drawDot(L[12], [dotstyle:=circle]),
drawDot(L[14], [dotstyle:=circle]),
]#-1##

La question que je me pose ? Est-il possible d'avoir des cercles, carrés, triangles marquant les points d'intersection un peu plus petit ? (Je n'ai rien vu dans la doc sur une variable pour la taille de ce codage).

Encore merci ?

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Lun 6 Oct - 23:06

Bonsoir Eric,

La macro drawDot n'est pas dans la doc! Mais par contre dans sa définition tu verras qu'il y a deux options dont dotscale. Remplace ton objet10 par celui-ci:

Code:

[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL  Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot( [L[2,2],L[8,2]], [dotstyle:=square, dotscale:=0.66]),
drawDot( [L[4,2],L[15,2]], [dotstyle:=triangle, dotscale:=0.66]),
drawDot( [L[6],L[10],L[12],L[14]], [dotstyle:=circle, dotscale:=0.66]),
]

Tu remarqueras qu'on peut regrouper tous les points d'un même style, et tu peux ajuster dotscale à ta guise (par défaut la taille est de 1.5mm de "rayon")

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Lun 6 Oct - 23:08

Je te remercie. J'avais bien vu le dotscale dans ton code mais, ne le trouvant pas dans la doc, j'ai préféré demander.


Dernière édition par Eric Kouris le Lun 6 Oct - 23:18, édité 1 fois

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Eric Kouris le Lun 6 Oct - 23:17

Voila le résultat (j'ai enlevé le rouge et j'ai augmenté un peu le nombre de points, ce qui fait une différence autour des extrema des courbes).

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.1##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
  dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
  dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
 SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
 $default:=0.15,
 if dotstyle=circle then
    for $z in %1 by 1 do
        Rcercle(z,default*dotscale/1.5)
    od
 elif dotstyle=triangle then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
      od
 elif dotstyle=square then
      for $z in %1 by 1 do
          Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
      od
 elif dotstyle=dot then
      FillColor:=Color,
      for $z in %1 by 1 do
          Rcercle(z,default*dotscale/1.5)
      od
 elif dotstyle=cross then
      FillStyle:=none,
      for $z in %1 by 1 do
          Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
              z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
      od
 fi,
 RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0,NbPoints:=150]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2,NbPoints:=50]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelStyle:=4,LabelAngle:=8]##
8#objet5#[ 0.5-.9*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelStyle:=1,LabelAngle:=0]##
8#objet6#[ 1-0.3*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelStyle:=0,LabelSize:=2]##
8#objet7#[ -1+1.3*i ]#$a=2$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.55*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL  Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot( [L[2,2],L[8,2]], [dotstyle:=square, dotscale:=0.66]),
drawDot( [L[4,2],L[15,2]], [dotstyle:=triangle, dotscale:=0.66]),
drawDot( [L[6],L[10],L[12],L[14]], [dotstyle:=circle, dotscale:=0.66]),
]#-1##

Cela correspond aux 4-cycles de la fonction f(x)=1-ax^2 pour a=2 (en fait un peu plus pour que la figure soit lisible).

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  P.Fradin le Lun 6 Oct - 23:35

Très bien. Par contre on ne voit pas bien les flèches des axes, on les verrait mieux avec une épaisseur plus importante, 8 par exemple.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Points d'intersection de deux courbes

Message  Contenu sponsorisé Aujourd'hui à 11:50


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum