/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N S R E L A T I V E S A L ' A T T R A C T E U R D E L O R E N Z : */
/* */
/* */
/* Author of '$xrk/lorenz.11$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 1996??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E L ' A T T R A C T E U R D E L O R E N Z : */
/* */
/* */
/* Definition : */
/* */
/* Il est classiquement defini par */
/* le systeme d'equations differentielles : */
/* */
/* dx */
/* ---- = -10.x + 10.y */
/* dt */
/* */
/* dy */
/* ---- = 28.x - y - x.z */
/* dt */
/* */
/* dz 8 */
/* ---- = - ---.z + x.y */
/* dt 3 */
/* */
/* ce que l'on peut generaliser en : */
/* */
/* dx */
/* ---- = (X .x + X .y + X .z) + (X .x.y + X .y.z + X .z.x) + (X .x.y.z) = F (x,y,z) */
/* dt x y z xy yz zx xyz x */
/* */
/* dy */
/* ---- = (Y .x + Y .y + Y .z) + (Y .x.y + Y .y.z + Y .z.x) + (Y .x.y.z) = F (x,y,z) */
/* dt x y z xy yz zx xyz y */
/* */
/* dz */
/* ---- = (Z .x + Z .y + Z .z) + (Z .x.y + Z .y.z + Z .z.x) + (Z .x.y.z) = F (x,y,z) */
/* dt x y z xy yz zx xyz z */
/* */
/* */
/*************************************************************************************************************************************/
#define CXx \
NEGA(FLOT(DIX))
#define CXy \
NEUT(FLOT(DIX))
#define CXz \
FZERO
#define CXxy \
FZERO
#define CXyz \
FZERO
#define CXzx \
FZERO
#define CXxyz \
FZERO
DEFV(Local,DEFV(Float,INIT(Xx,CXx)));
DEFV(Local,DEFV(Float,INIT(Xy,CXy)));
DEFV(Local,DEFV(Float,INIT(Xz,CXz)));
DEFV(Local,DEFV(Float,INIT(Xxy,CXxy)));
DEFV(Local,DEFV(Float,INIT(Xyz,CXyz)));
DEFV(Local,DEFV(Float,INIT(Xzx,CXzx)));
DEFV(Local,DEFV(Float,INIT(Xxyz,CXxyz)));
/* Definition des coefficients de 'dx'. */
#define CYx \
FLOT(DOUB(QUATORZE))
#define CYy \
NEGA(FU)
#define CYz \
FZERO
#define CYxy \
FZERO
#define CYyz \
FZERO
#define CYzx \
NEGA(FU)
#define CYxyz \
FZERO
DEFV(Local,DEFV(Float,INIT(Yx,CYx)));
DEFV(Local,DEFV(Float,INIT(Yy,CYy)));
DEFV(Local,DEFV(Float,INIT(Yz,CYz)));
DEFV(Local,DEFV(Float,INIT(Yxy,CYxy)));
DEFV(Local,DEFV(Float,INIT(Yyz,CYyz)));
DEFV(Local,DEFV(Float,INIT(Yzx,CYzx)));
DEFV(Local,DEFV(Float,INIT(Yxyz,CYxyz)));
/* Definition des coefficients de 'dy'. */
#define CZx \
FZERO
#define CZy \
FZERO
#define CZz \
NEGA(DIVI(FLOT(HUIT),FLOT(TROIS)))
#define CZxy \
FU
#define CZyz \
FZERO
#define CZzx \
FZERO
#define CZxyz \
FZERO
DEFV(Local,DEFV(Float,INIT(Zx,CZx)));
DEFV(Local,DEFV(Float,INIT(Zy,CZy)));
DEFV(Local,DEFV(Float,INIT(Zz,CZz)));
DEFV(Local,DEFV(Float,INIT(Zxy,CZxy)));
DEFV(Local,DEFV(Float,INIT(Zyz,CZyz)));
DEFV(Local,DEFV(Float,INIT(Zzx,CZzx)));
DEFV(Local,DEFV(Float,INIT(Zxyz,CZxyz)));
/* Definition des coefficients de 'dz'. */
#define CX0 \
FRA10(FRA10(FU)) \
/* ATTENTION, sur 'SYSTEME_FX2800_CONCENTRIX_SCC', ecrire 'FRA10(FRA10(FU))' (c'est-a-dire */ \
/* '(((1.0)/10)/10)') et '0.01' n'est pas equivalent, et l'on tombe sur le probleme de la */ \
/* sensibilite aux conditions initiales. En effet, grace au programme 'v $xtc/lorenz.02$c', */ \
/* on trouve : */ \
/* */ \
/* (((1.0)/10)/10) ==> CX = +2.5811201 CY = +4.3784782 CZ = +13.494037 */ \
/* 10000 10000 10000 */ \
/* */ \
/* 0.01 ==> CX = -0.3561074 CY = -1.5817687 CZ = +20.345352 */ \
/* 10000 10000 10000 */ \
/* */
#define CY0 \
FRA10(FRA10(FU)) \
/* ATTENTION, sur 'SYSTEME_FX2800_CONCENTRIX_SCC', ecrire 'FRA10(FRA10(FU))' (c'est-a-dire */ \
/* '(((1.0)/10)/10)') et '0.01' n'est pas equivalent, et l'on tombe sur le probleme de la */ \
/* sensibilite aux conditions initiales. En effet, grace au programme 'v $xtc/lorenz.02$c', */ \
/* on trouve : */ \
/* */ \
/* (((1.0)/10)/10) ==> CX = +2.5811201 CY = +4.3784782 CZ = +13.494037 */ \
/* 10000 10000 10000 */ \
/* */ \
/* 0.01 ==> CX = -0.3561074 CY = -1.5817687 CZ = +20.345352 */ \
/* 10000 10000 10000 */ \
/* */
#define CZ0 \
FRA10(FRA10(FU)) \
/* ATTENTION, sur 'SYSTEME_FX2800_CONCENTRIX_SCC', ecrire 'FRA10(FRA10(FU))' (c'est-a-dire */ \
/* '(((1.0)/10)/10)') et '0.01' n'est pas equivalent, et l'on tombe sur le probleme de la */ \
/* sensibilite aux conditions initiales. En effet, grace au programme 'v $xtc/lorenz.02$c', */ \
/* on trouve : */ \
/* */ \
/* (((1.0)/10)/10) ==> CX = +2.5811201 CY = +4.3784782 CZ = +13.494037 */ \
/* 10000 10000 10000 */ \
/* */ \
/* 0.01 ==> CX = -0.3561074 CY = -1.5817687 CZ = +20.345352 */ \
/* 10000 10000 10000 */ \
/* */
#define DCT \
FRA10(FRA10(FU)) \
/* ATTENTION, sur 'SYSTEME_FX2800_CONCENTRIX_SCC', ecrire 'FRA10(FRA10(FU))' (c'est-a-dire */ \
/* '(((1.0)/10)/10)') et '0.01' n'est pas equivalent, et l'on tombe sur le probleme de la */ \
/* sensibilite aux conditions initiales. En effet, grace au programme 'v $xtc/lorenz.02$c', */ \
/* on trouve : */ \
/* */ \
/* (((1.0)/10)/10) ==> CX = +2.5811201 CY = +4.3784782 CZ = +13.494037 */ \
/* 10000 10000 10000 */ \
/* */ \
/* 0.01 ==> CX = -0.3561074 CY = -1.5817687 CZ = +20.345352 */ \
/* 10000 10000 10000 */ \
/* */
DEFV(Local,DEFV(Float,INIT(dct,DCT)));
/* Definition de 'dt'. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D E S T R O I S F O N C T I O N S ' F ' : */
/* */
/*************************************************************************************************************************************/
#define Fx(cx,cy,cz,t) \
ADD3(LIZ3(Xx,cx,Xy,cy,Xz,cz) \
,LIZ3(Xxy,MUL2(cx,cy),Xyz,MUL2(cy,cz),Xzx,MUL2(cz,cx)) \
,MUL2(Xxyz,MUL3(cx,cy,cz)) \
) \
/* Definition de la fonction F (x,y,z). */ \
/* x */
#define Fy(cx,cy,cz,t) \
ADD3(LIZ3(Yx,cx,Yy,cy,Yz,cz) \
,LIZ3(Yxy,MUL2(cx,cy),Yyz,MUL2(cy,cz),Yzx,MUL2(cz,cx)) \
,MUL2(Yxyz,MUL3(cx,cy,cz)) \
) \
/* Definition de la fonction F (x,y,z). */ \
/* y */
#define Fz(cx,cy,cz,t) \
ADD3(LIZ3(Zx,cx,Zy,cy,Zz,cz) \
,LIZ3(Zxy,MUL2(cx,cy),Zyz,MUL2(cy,cz),Zzx,MUL2(cz,cx)) \
,MUL2(Zxyz,MUL3(cx,cy,cz)) \
) \
/* Definition de la fonction F (x,y,z). */ \
/* z */