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



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.