Diagramme de bifurcation

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

Diagramme de bifurcation

Message  SpintroniK le Mer 16 Avr - 17:16

Bonjour,

je sais que le titre du sujet ressemble à celui-ci : Diagramme de bifurcation et c'est normal car je voudrai faire le diagramme de bifurcation d'un système réel (laser).
  • Pour cela, il faut en fait partir des équations et du programme que j'avais donnés ici : équa diff laser
  • Je voudrais récupérer les coordonnées des points (voir image)

    Imaginons que les points soient stockés dans une variable z comme dans le programme précédent :
  • Supprimer les M premiers points (pour enlever le régime transitoire). (j'ai déjà essayé de le faire mais j'ai l'impression que les points ne sont pas supprimés mais décalés)
  • En suite, il faut mettre le tout dans une boucle (avec la fonction point je crois pour afficher les points) pour faire ceci :
    Code:
    Point(for m from 0 to 0.034 step 0.001 do m+i*Re(z) od)
    (je sais le temps de calcul risque d'être long mais peu importe, d'ailleurs, j'ai l'impression qu'il y a une limite du nombre de points pour intégrer les équa diff...)

J'espère avoir été clair,
En gros, mon principal problème c'est de supprimer le régime transitoire, et de bien agencer le tout, mais j'explique quand même le reste pour être plus clair...
Merci d'avance.
Jérémy.

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Mer 16 Avr - 17:37

SpintroniK a écrit:Bonjour,

Bonjour,


Imaginons que les points soient stockés dans une variable z comme dans le programme précédent :
[*] Supprimer les M premiers points (pour enlever le régime transitoire). (j'ai déjà essayé de le faire mais j'ai l'impression que les points ne sont pas supprimés mais décalés)

Pour supprimer les M premiers points (2d) de la liste z: Del(z, 1, M).


[*] En suite, il faut mettre le tout dans une boucle (avec la fonction point je crois pour afficher les points) pour faire ceci :
Code:
Point(for m from 0 to 0.034 step 0.001 do m+i*Re(z) od)

C'est là que je ne suis plus, dans ta boucle z est constant? Quels points veux-tu afficher précisément?


(je sais le temps de calcul risque d'être long mais peu importe, d'ailleurs, j'ai l'impression qu'il y a une limite du nombre de points pour intégrer les équa diff...)

Le nombre de points est géré par la variable NbPoints.

_________________
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: Diagramme de bifurcation

Message  SpintroniK le Mer 16 Avr - 17:46

Ah !
J'ai oublié une partie peut être que je devrai plutot faire ça :

Code:
Point(
for m from 0 to 0.034 step 0.001
do
  stock:=Get(EquaDif( f(t,x,y), 0, x0+i*y0)),
  Del(stock, 1, M),
  for $z in stock do
      m+i*Re(z)
  od
od)

Je ne sais pas si ça peut fonctionner comme ça ?

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Mer 16 Avr - 17:53

Il y a un lien entre m et M? Parce que dans la commande Del M est un entier.
Je pense que je ne comprends pas bien quels points exactement vous voulez enlever.

_________________
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: Diagramme de bifurcation

Message  SpintroniK le Mer 16 Avr - 18:02

Non, M est en fait le nombre de points considérés comme étant dans le régime transitoire donc
Code:

Point(
for m from 0 to 0.034 step 0.001
do
  stock:=Get(EquaDif( f(t,x,y), 0, x0+i*y0)),
  Del(stock, 1, NbPointsSuppr),
  for $z in stock do
      m+i*Re(z)
  od
od)

En gros, je considère que le nombre de points à supprimer pour enlever le régime transitoire est de NbPointsSuppr (qui est une constante que je défini).
C'est plus clair et juste comme ça ?
Au fait, TeXgraph fait attention à la casse ou pas ?

EDIT : il faut aussi surement ajouter ceci quelque part :
Code:
 Inc(k,1),
 if k=1 then z elif k=N then k:=0 fi

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Mer 16 Avr - 18:35

Oui, TeXgraph est sensible à la casse.

J'ai essayé ceci:

Code:

[$T:=2*pi/omega,tMin:=0, tMax:=n*T, NbPoints:=500,

$S:=for m from 0 to 0.034 step 0.001
  do
  stock:=Get(EquaDif( f(t,x,y), 0, x0+i*y0),0),
  Del(stock, 1, 10),
  for $z in stock do
      m+i*Re(z)
  od
  od,
R:=rectangle(S),
Fenetre(R[1],R[2]), size(10,0),
Point(S)]

Après avoir stocké la liste des points, on calcule la fenêtre, retaille le graphique, et dessine la liste de points.

Cela me donne ceci:




Je ne sais pas si c'est très probant...

_________________
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: Diagramme de bifurcation

Message  P.Fradin le Mer 16 Avr - 19:54

J'ai vu l'edit un peu tard, alors si on ne prend qu'un point de N en N:

Code:

[$T:=2*pi/omega,tMin:=0, tMax:=n*T, NbPoints:=N*n+1,

$S:=for m from 0 to 0.034 step 0.001
  do
  stock:=Get(EquaDif( f(t,x,y), 0, x0+i*y0),0),
  Del(stock, 1, 10),
  k:=0,
  for $z in stock do
      Inc(k,1),
      if k=1 then m+i*Re(z) elif k=N then k:=0 fi
  od
  od,
R:=rectangle(S),
Fenetre(R[1],R[2]), size(10,0),
Point(S)
]   

On obtient cela:

_________________
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: Diagramme de bifurcation

Message  SpintroniK le Jeu 17 Avr - 17:06

Bonjour,

en fait ça à l'air de ne pas fonctionner et pourtant si !
Il faut simplement enlever plus de points pour enlever un peu plus de régime transitoire (et donc tracer plus de points ce qui allonge le temps de calcul).

Deuxièmement, il faut tracer : m+i*ln(Re(z)) et là on voit très bien la structure du diagramme...

Very Happy En tout cas merci

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Jeu 17 Avr - 17:12

SpintroniK a écrit:Bonjour,

en fait ça à l'air de ne pas fonctionner et pourtant si !
Il faut simplement enlever plus de points pour enlever un peu plus de régime transitoire (et donc tracer plus de points ce qui allonge le temps de calcul).

Bonjour,

Tu peux nous en dire un peu plus? Combien de points? Le mieux c'est peut-être de mettre le code de ton élément graphique.

Deuxièmement, il faut tracer : m+i*ln(Re(z)) et là on voit très bien la structure du diagramme...

J'aimerais bien en mettre une image sur le forum, pour les lecteurs évenuels.

Very Happy En tout cas merci

De rien!

_________________
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: Diagramme de bifurcation

Message  P.Fradin le Jeu 17 Avr - 18:07

Effectivement, on tatonnant un peu et avec de la patience, on commence à voir cette structure:


_________________
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: Diagramme de bifurcation

Message  SpintroniK le Ven 18 Avr - 11:07

P.Fradin a écrit:

Deuxièmement, il faut tracer : m+i*ln(Re(z)) et là on voit très bien la structure du diagramme...

J'aimerais bien en mettre une image sur le forum, pour les lecteurs évenuels.

Oui c'est vrai que ça pourrait être pas mal, mais il y a surement un problème avec les nombres n et N car à partir d'une certaine valeur de m le résultat n'à pu l'air très bon...
j'ai essayé avec n=50 et N=50 mais je ne suis pas sûr de ce que cela signifie, je dirais qu'on calcule N*n+1 points et qu'on crée un point sur le diagramme tous les N points.
Mais apparament, même avec N=250 et n=250 on obtient à peu près la même chose.
Parfois on peut voir des sortes de droites ce qui vient peut être d'erreurs d'arrondi mais je n'en suis pas sûr.
Et effectvement il faut avoir de la patience mais avec n'importe quel autre logiciel le temps de calcul est à peu près le même.

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  SpintroniK le Dim 20 Avr - 19:47

Est-ce qu'il y a un moyen d'exporter tous les points dans un fichier externe et de les récupérer ensuite pour tracer (pour éviter de refaire tout le calcul des points à chaque fois)?

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Dim 20 Avr - 20:58

Bonjour SpintroniK,

Je te propose le fichier suivant:

Code:

% TeXgraph version 1.94 beta-0
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#0.0127#0.01992626262626#-9.81499441141135#-0.04473585488361#1245.45708694482#0.92116293012398##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0.5#0.5#1#1#8##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#1.1##
15#omega#2*pi/300##
15#gamma#0.002083##
15#m#0.0334##
15#n#100##
15#x0#0.25##
15#y0#1##
15#N#300##
% Déclaration des Macros
16#f#[{$t:=%1, $x:=%2, $y:=%3,
 equadif du type: x'(t) + i*y'(t) }
%2*(A*%3-1-m*sin(omega*%1)) +i*gamma*(1-%3*(1+%2))
]
##
16#SaveData#{ SaveData(min, max, nbpoints) }
[$T:=2*pi/omega,tMin:=0, tMax:=n*T, NbPoints:=N*n+1,
 OpenFile(\file),
 $S:=for m from %1 to %2 step (%2-%1)/(%3-1)
  do
  stock:=Get(EquaDif( \f(t,x,y), 0, x0+i*y0),0),
  Del(stock, 1, 90*N),
  k:=0,
  for $z in stock do
      Inc(k,1),
      if k=1 then m+i*ln(Re(z)) elif k=N then k:=0 fi
  od
  od,
  for $z in S do WriteFile([Re(z)," ",Im(z)]) od,
  CloseFile(),
  Message("Save Data Done")
]
##
16#file#"/home/pfradin/integ.dat"
##
% Déclaration des Eléments graphiques
% diagramme (Utilisateur)
18##[tMin:=0,tMax:=0.04]##
14#diagramme#[S:=ReadData(\file),
 R:=rectangle(S),
 Fenetre(R[1],R[2]), size(10,0),
 Point(S)
]
#-1##

Regarde la macro: SaveData(min, max, nbpoints), c'est là qu'il y a le calcul pour m allant de min à max avec le nombre de points demandé, j'ai supprimé les 90*N premiers points et je sauve donc les 10 points qui restent (de N en N).

Il te faudra changer le nom du fichier qui est dans la macro file pour l'adapter à ta machine.

Pour sauvegarder: tape dans la ligne de commande par exemple: SaveData(0.0127, 0.025, 100), quand la suavegarde est finie tu auras un message qui s'affichera. Pour mettre alors le graphique à jour, tu fais F10 (ou tu cliques le bouton R).

Si tu veux faire des zooms sur le graphique il faut commenter une partie de l'élément diagramme, comme ceci:

Code:

[S:=ReadData(\file),
 {R:=rectangle(S),
 Fenetre(R[1],R[2]), size(10,0),}
 Point(S)] 

_________________
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: Diagramme de bifurcation

Message  SpintroniK le Lun 21 Avr - 19:53

Salut,

je viens de trouver la solution (sans savoir pourquoi ça fonctionne !!!).
Je pense que ce type de résultat est largement satisfaisant :



Voici le fichier que j'ai utilisé :
SOURCE

Je ne sais pas si ça fonctionnera chez vous car chez moi un coup ça marche, un coup ça marche pas (on dirait qu'on a la m^me chose mais "parasitée"... j'avoue ne pas trop comprendre ce qui se passe...)

En tout cas le résultat me convient parfaitement, dites moi si le fichier fonctionne aussi chez vous et si vous arrivez à comprendre le pourquoi du comment...
Merci

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Lun 21 Avr - 22:05

Bonsoir,

Effectivement ton fichier fonctionne chez moi, et parfois le résultat est changeant. Je me suis rendu compte qu'en diminuant le valeur de N j'avais un graphe bien plus stable, en prenant N=25, n=100, et supprimant 90*N points à chaque fois, j'obtiens (avec un pas de 0.00005):



Mais si on diminue trop N, on ne voit plus du tout le phénomène, ce qui se comprend. Par contre pour des grandes valeurs de N, peut-être est-ce une question de stabilité de numérique?

PS: N est le nombre de points d'approximations par période, et n est le nombre de périodes.

_________________
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: Diagramme de bifurcation

Message  SpintroniK le Ven 25 Avr - 16:53

Bonjour,

le résultat final est plutôt bon et c'est ce qui m'intéresse.
Finalement, ça fonctionne même si c'est plutôt bizarre puisque si on change l'intervalle de variation de m le résultat change aussi, ce qui est très étrange. Je veux bien admettre que les valeurs de n et N influent sur le résultat mais là...
D'ailleurs, si on regarde bien, grand on prend N grand, on voit le même dessin (du moins au début) à part que le tout semble dilaté suivant l'axe Y. Ce qui voudrait dire que la suite de points pourrait osciller autour de son éventuel point fixe (par exemple).
Je pense que ça peut s'expliquer par une petite erreur commise à chaque itération et donc qui s'amplifie à chaque fois...
Enfin j'en suis pas sûr mais bon je vois pas d'autre explication.

SpintroniK

Nombre de messages : 8
Age : 29
Localisation : Entre 95 et 59
Date d'inscription : 16/04/2008

Voir le profil de l'utilisateur http://www.freewebmaster.fr

Revenir en haut Aller en bas

Re: Diagramme de bifurcation

Message  P.Fradin le Ven 25 Avr - 19:56

SpintroniK a écrit:Bonjour,

le résultat final est plutôt bon et c'est ce qui m'intéresse.

Bonjour,

Encore faut-il que le dessin corresponde à une réalité Laughing


Finalement, ça fonctionne même si c'est plutôt bizarre puisque si on change l'intervalle de variation de m le résultat change aussi, ce qui est très étrange. Je veux bien admettre que les valeurs de n et N influent sur le résultat mais là...
D'ailleurs, si on regarde bien, grand on prend N grand, on voit le même dessin (du moins au début) à part que le tout semble dilaté suivant l'axe Y. Ce qui voudrait dire que la suite de points pourrait osciller autour de son éventuel point fixe (par exemple).
Je pense que ça peut s'expliquer par une petite erreur commise à chaque itération et donc qui s'amplifie à chaque fois...
Enfin j'en suis pas sûr mais bon je vois pas d'autre explication.

En prenant N=25 et n=100 j'ai un dessin stable même en changeant l'intervalle de m. Cela fait quand même 2500 points approchés par équation, si la propagation de l'erreur est importante, par exemple de type exponentielle, on conçoit qu'il ne faut pas chercher à trop augmenter N, et effectivement, si je prends N=100 je constate la même chose que toi: des sortes d'oscillations qui ne correspondent pas vraiment au même dessin, et là on est à 10 000 points par courbe ...

_________________
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: Diagramme de bifurcation

Message  Contenu sponsorisé Aujourd'hui à 5:59


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