begin process at 2010 03 14 08:37:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > COURBE DE GUMOWSKI-MIRA

COURBE DE GUMOWSKI-MIRA


 Information sur la source

Note :
6,6 / 10 - par 5 personnes
6,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :courbe, gumowski, mira Niveau :Débutant Date de création :16/01/2005 Vu :3 356

Auteur : Jarod1980

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
En 1980, deux physiciens I. Gumowski et C. Mira, du centre de recherche CERN de Genève en Suisse utilisèrent le système d'équations

xn+1 = Byn + f(xn)
yn+1 = -xn + f(xn+1)

où : f(x) = Ax + (2*(1-A)x² )/(1+x²)

pour simuler la trajectoire de particules se déplaçant à très haute vitesse dans un accélérateur de particules de la forme d'une mince boîte cylindrique de plusieurs mètres de long. Ils donnèrent à la constante A des valeurs entre -1 et 1, à la constante B (beaucoup plus sensible) des valeurs très près de 1 et à xo et yo des valeurs entre -20 et 20. Ils découvrirent à leur grande surprise que les trajectoires issues de ce système et portées sur un plan cartésien produisent des images surprenantes nous rappelant certaines formes de vie marine.

Le programme présent ci-dessous permet de sauvegarder les points x et y dans un fichier. J'ai utilisé GnuPlot pour tracer les points sauvegardés dans le fichier output.dat

Source

  • /* Valeurs à essayer éventuellement:
  • A=-0.31; B=1; x0=3.0; y0=1.0
  • A=-0.23; B=1; x0=0.8; y0=0.4
  • A=-0.05; B=1; x0=15; y0=0.0
  • A=-0.6; B=0.99; x0=0.09; y0=-2.76
  • A=0.31; B=1; x0=3; y0=1
  • A=-0.77; B=0.95; x0=3; y=1 */
  • #include <stdio.h>
  • #include <math.h>
  • #define A -0.48
  • #define B 0.93
  • int main(int argc, char *argv[])
  • {
  • int i,n;
  • float x,y,xp,yp;
  • FILE *fichier;
  • fichier = fopen("output.dat","w");
  • x = 4.0;
  • y = 4.0;
  • n = 30000;
  • for(i=1;i<=200;i++) {
  • xp = B*y+A*x+2*(1-A)*x*x/(1+xp*xp);
  • y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
  • x = xp;
  • }
  • for(i=1;i<=n;i++) {
  • xp = B*y+A*x+2*(1-A)*x*x/(1+x*x);
  • y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
  • x = xp;
  • fprintf(fichier,"%f %f \n",x,y);
  • }
  • fclose(fichier);
  • return 0;
  • }
/* Valeurs à essayer éventuellement:
A=-0.31; B=1; x0=3.0; y0=1.0
A=-0.23; B=1; x0=0.8; y0=0.4
A=-0.05; B=1; x0=15; y0=0.0
A=-0.6; B=0.99; x0=0.09; y0=-2.76
A=0.31; B=1; x0=3; y0=1
A=-0.77; B=0.95; x0=3; y=1 */

#include <stdio.h>
#include <math.h>
#define A -0.48
#define B 0.93

int main(int argc, char *argv[])
{

  int i,n;
  float x,y,xp,yp;
  FILE *fichier;
  fichier = fopen("output.dat","w");

  x = 4.0;
  y = 4.0;
  n = 30000;
  for(i=1;i<=200;i++) {
  xp = B*y+A*x+2*(1-A)*x*x/(1+xp*xp);
  y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
  x = xp;

  }
  for(i=1;i<=n;i++) {
  xp = B*y+A*x+2*(1-A)*x*x/(1+x*x);
  y = -x+A*xp+2*(1-A)*xp*xp/(1+xp*xp);
  x = xp;
  fprintf(fichier,"%f %f \n",x,y);
  }
  fclose(fichier);
  return 0;
}



 Sources du même auteur

Source avec une capture FRACTALE NEWTON-RAPHSON VERSION GLUT
Source avec Zip FAST FOURIER TRANSFORM
TRANSFORMEE DE FOURIER DISCRETE
Source avec une capture FRACTALE TREE (ARBRE) VERSION GLUT
Source avec une capture COURBE DE GUMOWSKI & MIRA VERSION GLUT

 Sources de la même categorie

Source avec Zip Source avec une capture ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROI... par Thuzhen
Source avec une capture CALCUL DE VARIANCE par Minilogus
Source avec une capture GÉNÉRATEUR DE CLÉS SUR 26 DIGITS AU FORMAT HEXADÉCIMAL par besilent
Source avec Zip Source avec une capture ALGORITHME DE CRYPTAGE/DECRYPTAGE par besilent
Source avec une capture CALCUL D'INCERTITUDE par Minilogus

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture REPRESENTATION GRAPHIQUE DE DONNEES par wildhawk
Source avec Zip Source avec une capture CLASSE CGRAPHXY par bobbyantho
Source avec Zip Source avec une capture GRAPHEUR 2D par BCedric
Source avec Zip Source avec une capture TRACÉ DE COURBES À PARTIR D'UN FICHIER TEXTE (GDI) par yoyo269
Source avec Zip Source avec une capture Source .NET (Dotnet) COURBE DE BÉZIER EN TROIS POINTS (CONSTRUCTIONS BARYCENTRIQU... par florian15

Commentaires et avis

Commentaire de BruNews le 16/01/2005 13:29:58 administrateur CS

Salut,

au niveau code, ce qui devrait nous interesser sur CS, ça apporte quoi ?

Commentaire de luhtor le 16/01/2005 15:25:17

Moi elle me plait la courbe :)

Commentaire de BruNews le 16/01/2005 15:35:19 administrateur CS

Ben oui, y aurait eu le traceur de courbe dans la source, ça aurait deja ete nettement plus interessant, mais la...

Commentaire de psycho le 17/01/2005 18:45:59

je trouve ca pas mal moi de découvrir ce genre de chose su CS. Bon je suis d accord avec toi brunews que le site est dédié aux sources, et non pas à la "science". mais bon, il fournit le code, alors .....moi je dis qu'il n y a rien a redire, mais ce jugement n engage que moi...
++

Commentaire de Kirua le 17/01/2005 22:20:29

Je trouve aussi que le côté esthétique / étonnant / incongru rattrape bien la faiblesse du code. Je te mets 7 pour le côté récréatif ;)

Commentaire de Jarod1980 le 18/01/2005 11:25:55

Merci à tout le monde pour les remarques que vous avez laissé sur mon code source. Je projete de developper une application graphique de mon programme en utilisant la librairie SDL. Pour le moment je suis en train d'y travailler car je n'ai pas trop de connaissances en application graphique.

Commentaire de dletozeun le 22/01/2005 22:47:19

amusant!...mais moi j'avais envie d'essayer d'autres courbes mais dasn le fichier texte je n'ai que :

1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0
1.#QNAN0 1.#QNAN0

a l'infini....

bizarre...je crois que ca viens du printf() qui est mal parametré mais je suis pas sur...

Commentaire de dletozeun le 22/01/2005 22:52:35

escusez moi je voulais pas en mettre tant...

Commentaire de deguelatore le 01/08/2005 21:52:24

Salut tous le monde. J'ai un problème avec le code. Il y a création du fichier .dat mais comment voir la courbe???

Commentaire de Jarod1980 le 02/08/2005 10:08:06

Salut Deguelatore,
Pour voir la courbe il faut ouvrir le fichier .dat et tracer les points avec un logiciel du type Gnuplot ou Excel.
J'ai fais une version améliorée de ce programme qui se trouve sur ce site à l'adresse suivante:
http://www.cppfrance.com/code.aspx?ID=29410

Avec ce dernier plus besoin d'ouvrir un fichier pour tracer les points. Ca trace tout seul grace à la lib Glut.

Commentaire de mitchovitch le 09/10/2006 22:36:40

brunews au niveau vie sur terre t'apportes quoi ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème avec le copier coller [ par Unknown ] J'ai un projet où j'utilise un composant image. Il me permet l'affichage d'une courbe a partir d'un oscilloscope numérique. Mon problème est que je do faire une courbe toute conne [ par Axool ] pouvez-vous m'aider svp: j'aimerais savoir faire une courbe toute conne, vraiment le + simple possible...mercips: si au passage vous savez comment cré desiner une courbe a partir des valeurs d'un tableau [ par aymentri ] je veut afficher un graphe en utilisant des valeurs stokées dans un tableau Sismographe [ par nahs ] Bonjours,Je cherche un moyen de tracer une courbe de la meme fason qu'un sismographe c'est à dire: sur une fenetre on verrai la feuille qui bouge de d courbe C++ [ par tguinel ] salut,je veut afficher un graphe en utilisant des valeurs stokées dans une base données(en C++, visualC++ 6.0).merci de m'aider. Rafraichissement [ par gus2647 ] Bonjour,J utilise VC++ 6 et les MFC. lorsque je trace une courbe, elle s affiche correctement, mais lorsque je cree par dessus par exemple une CListCt Comment faire un Defilemant de courbe en API [ par nahs ] Bonjours,J'aurai voulu saloire comment faire un effet defilent en API; les instructions qui permet de faire cela.Merci utilisation du Tchart??(builder) [ par kach23 ] bonjour,je fais une acquisition de mesure(carte NI) avec builder 6. en utilisant le timer de builder je pe realiser une courbe (Tchart) qui evolue au Line To rapide [ par BarthOlivier ] Salut,Je fait plusieurs occurence de MoveTo + LineTo sur un CDC.Est-il possible d'optimiser LineTo avec une autre fonction ?J'avais essayé en passant tracer courbe en excel à partir de MFC [ par mabrouka ] bonjour,comment tracer une courbe en excel à partir de visual c++ MFCmerci


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales