/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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");
     }



Copyright © Jean-François Colonna, 2021-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2023.