/*************************************************************************************************************************************/ /* */ /* E T U D E D E L A D Y N A M I Q U E D E V E R H U L S T */ /* S U R D I F F E R E N T E S M A C H I N E S : */ /* */ /* */ /* Author of '$xtc/verhulst.01$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). */ /* */ /*************************************************************************************************************************************/ #include <stdio.h> #define pas 100 \ /* Nota : un pas tres inferieur (10) produit un phenomene similaire... */ #define N 10 #define R 3.0 #define X0 0.5 main() { double x=X0,r=R; /* Nota : 'float' ne donne pas le meme resultat que 'double' bien entendu... */ int n; for (n=0 ; n<(N*pas) ; n++) { if ((n%pas) == 0) { printf("\n S(%3d) = %f",n,x); /* Avec les parametres suivants, on trouve : */ /* */ /* #define pas 100 */ /* #define N 10 */ /* #define R 3.0 */ /* #define X0 0.5 */ /* */ /* sur : */ /* */ /* SYSTEME_DPX5000_SPIX_CC : */ /* */ /* S( 0) = 0.500000 */ /* S(100) = 0.000067 */ /* S(200) = 0.190665 */ /* S(300) = 1.314457 */ /* S(400) = 0.281038 */ /* S(500) = 1.288736 */ /* S(600) = 0.075022 */ /* S(700) = 1.081929 */ /* S(800) = 0.467045 */ /* S(900) = 1.078306 */ /* */ /* */ /* SYSTEME_VAX9000_ULTRIX_CC : */ /* */ /* S( 0) = 0.500000 */ /* S(100) = 1.321403 */ /* S(200) = 0.054873 */ /* S(300) = 0.005471 */ /* S(400) = 0.952259 */ /* S(500) = 0.619443 */ /* S(600) = 0.006132 */ /* S(700) = 0.483141 */ /* S(800) = 1.184706 */ /* S(900) = 1.331747 */ /* */ /* */ /* SYSTEME_NWS3000_NEWSOS_2CC : */ /* */ /* S( 0) = 0.500000 */ /* S(100) = 0.000067 */ /* S(200) = 0.190665 */ /* S(300) = 1.314457 */ /* S(400) = 0.281038 */ /* S(500) = 1.288736 */ /* S(600) = 0.075022 */ /* S(700) = 1.081929 */ /* S(800) = 0.467045 */ /* S(900) = 1.078306 */ /* */ } else { } x = ((r+1)*x) - (r*(x*x)); /* Nota : '(r*x)*x' ne donne pas le meme resultat que 'r*(x*x)', l'ordre des operations */ /* intervient donc (ce qui est dans la logique du chaos deterministe). Ainsi : */ /* */ /* SYSTEME_NWS3000_NEWSOS_2CC avec 'x = ((r+1)*x) - (r*(x*x));' : */ /* | |_| */ /* |___| */ /* */ /* S( 0) = 0.500000 */ /* S(100) = 0.000067 */ /* S(200) = 0.190665 */ /* S(300) = 1.314457 */ /* S(400) = 0.281038 */ /* S(500) = 1.288736 */ /* S(600) = 0.075022 */ /* S(700) = 1.081929 */ /* S(800) = 0.467045 */ /* S(900) = 1.078306 */ /* */ /* */ /* SYSTEME_NWS3000_NEWSOS_2CC avec 'x = ((r+1)*x) - ((r*x)*x);' : */ /* |_| | */ /* |___| */ /* */ /* S( 0) = 0.500000 */ /* S(100) = 0.119457 */ /* S(200) = 1.053978 */ /* S(300) = 0.548789 */ /* S(400) = 1.041368 */ /* S(500) = 0.007058 */ /* S(600) = 1.036230 */ /* S(700) = 1.273399 */ /* S(800) = 0.001108 */ /* S(900) = 0.029584 */ /* */ /* */ /* On notera le 20170624113944 que : */ /* */ /* x = (-r)*x*x + (r+1)*x; */ /* */ /* donne (evidemment) encore autre chose... */ } printf("\n"); }