/*************************************************************************************************************************************/ /* */ /* E T U D E D E L A P E R T E D E S P R O P R I E T E S D ' A S S O C I A T I V I T E */ /* D E L A M U L T I P L I C A T I O N E T D E L A D I S T R I B U T I V I T E D E */ /* L A M U L T I P L I C A T I O N P A R R A P P O R T A L ' A D D I T I O N L O R S */ /* D E L ' 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 : */ /* */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * ** * * * * * ** * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * ** * * * * * ** */ /* * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* */ /* ATTENTION : */ /* */ /* Ce programme ('$xtc/verhulst.94$c') est */ /* reference dans '$xiMd/verhulst.94$c.$m4' */ /* a des fins de demonstration 'WWW'. */ /* */ /* */ /* Nota : */ /* */ /* Il existe une version en "precision */ /* infinie" de ce programme ('v $xtb/verhulst.94'). */ /* */ /* */ /* Author of '$xtc/verhulst.94$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1992MMJJhhmmss). */ /* */ /*************************************************************************************************************************************/ #include <stdio.h> #define PRECIS double \ /* Definition de la precision ('float' ou 'double') des calculs. Le phenomene de la */ \ /* sensibilite a l'ordre des operations ne se manifeste qu'en 'double'... */ #define pas 10 \ /* Pas d'edition des valeurs (dx1,dx2,dx3,dx4,dx5). */ #define N 10 \ /* Nombre d'instants a editer (le nombre d'iterations est donc 'N*pas'). */ #define R 3.0 \ /* Taux de croissance. */ #define X0 0.5 \ /* Conditions initiales. */ main() { PRECIS r=R; PRECIS dx1=X0; PRECIS dx2=X0; PRECIS dx3=X0; PRECIS dx4=X0; PRECIS dx5=X0; int n; for (n=0 ; n<(N*pas) ; n++) { if ((n%pas) == 0) { printf("\n X(%04d) = %9.6f %9.6f %9.6f %9.6f %9.6f",n,dx1,dx2,dx3,dx4,dx5); } else { } dx1 = ((r+1)*dx1) - (r*(dx1*dx1)); dx2 = ((r+1)*dx2) - ((r*dx2)*dx2); dx3 = (((r+1) - (r*dx3))*dx3); dx4 = (r*dx4) + ((1 - (r*dx4))*dx4); dx5 = dx5 + (r*((dx5) - (dx5*dx5))); /* Le resultat depend de la syntaxe... */ } }