/*************************************************************************************************************************************/
/* */
/* 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... */
}
}