Download puchamevol.dgibi

Back to the list

* fichier : puchamevol.dgibi
*---------------------------------------------------------------------*
*                     Cas-test de l'operateur '**'                    *
*                                                                     *
*    Ce cas-test verifie l'elevation a la puissance de MCHAMLs dont   *
* les composantes sont de type EVOLUTION.                             *
*    1. Elevation a la puissance ENTIERE POSITIVE ;                   *
*    2. Elevation a la puissance ENTIERE NEGATIVE ;                   *
*    3. Elevation a la puissance REELLE POSITIVE ;                    *
*    4. Elevation a la puissance REELLE NEGATIVE ;                    *
*    5. Elevation a la puissance REELLE POSITIVE d'un MCHAML a deux   *
*    composantes.                                                     *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
* Pour avoir les messages, mettre IMES1 a VRAI :                      *
IMES1    = FAUX ;
*
'OPTI' 'ECHO' 0 ;
'OPTI' 'DIME' 2 'ELEM' QUA4 ;
*                                                                     *
* Maille support des MCHAMLs :                                        *
P1       = 0. 0. ;
P2       = 2. 0. ;
D1       = P1 'DROI' 2 P2 ;
S1       = D1 'TRAN' 1 (0. 1.) ;
*                                                                     *
*------------------- 1. PUISSANCE ENTIERE POSITIVE -------------------*
*                                                                     *
* Un 1e MCHAML :                                                      *
LX1      = 'PROG' 0. 1. 2. ;
LY1      = 'PROG' 2. 3. 5. ;
EVK1     = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
MOD1     = 'MODE' S1 'THERMIQUE' ;
MAT1     = 'MATE' MOD1 'K' EVK1 ;
*                                                                     *
* Elevation a la puissance :                                          *
N1       = 2 ;
MAT2     = MAT1 ** N1 ;
*                                                                     *
* Verification du resultat :                                          *
ERR1     = 0. ;
'SI' ('NEG' ('TYPE' MAT2) 'MCHAML') ;
  ERR1     = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT2 'COMP')) 1) ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 1) 'K') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
EVK2     = 'EXTR' MAT2 'K' 1 1 1 ;
LX2      = 'EXTR' EVK2 'ABSC' ;
LY2      = 'EXTR' EVK2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 ** N1) - LY2)) ;
*                                                                     *
* Message de sortie :                                                 *
IERR1    = 'NEG' ERR1 0. ;
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SI' IERR1 ;
    'SAUT' 1 'LIGN' ;
    'MESS'
'*** Erreur dans l"elevation a la puissance entiere positive' ;
    'MESS'
'    d"un MCHAML dont la composante est de type EVOLUTIOn.' ;
  'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
* Gestion de l'erreur :                                               *
'SI' IERR1 ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*------------------- 2. PUISSANCE ENTIERE NEGATIVE -------------------*
*                                                                     *
* Elevation a la puissance :                                          *
N1       = -1 ;
MAT2     = MAT1 ** N1 ;
*                                                                     *
* Verification du resultat :                                          *
'SI' ('NEG' ('TYPE' MAT2) 'MCHAML') ;
  ERR1     = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT2 'COMP')) 1) ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 1) 'K') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
EVK2     = 'EXTR' MAT2 'K' 1 1 1 ;
LX2      = 'EXTR' EVK2 'ABSC' ;
LY2      = 'EXTR' EVK2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 ** N1) - LY2)) ;
*                                                                     *
* Message de sortie :                                                 *
IERR1    = 'NEG' ERR1 0. ;
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SI' IERR1 ;
    'SAUT' 1 'LIGN' ;
    'MESS'
'*** Erreur dans l"elevation a la puissance entiere negative' ;
    'MESS'
'    d"un MCHAML dont la composante est de type EVOLUTIOn.' ;
  'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
* Gestion de l'erreur :                                               *
'SI' IERR1 ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*------------------- 3. PUISSANCE REELLE POSITIVE --------------------*
*                                                                     *
* Elevation a la puissance :                                          *
X1       = 2.5 ;
MAT2     = MAT1 ** X1 ;
*                                                                     *
* Verification du resultat :                                          *
'SI' ('NEG' ('TYPE' MAT2) 'MCHAML') ;
  ERR1     = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT2 'COMP')) 1) ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 1) 'K') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
EVK2     = 'EXTR' MAT2 'K' 1 1 1 ;
LX2      = 'EXTR' EVK2 'ABSC' ;
LY2      = 'EXTR' EVK2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 ** X1) - LY2)) ;
*                                                                     *
* Message de sortie :                                                 *
IERR1    = 'NEG' ERR1 0. ;
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SI' IERR1 ;
    'SAUT' 1 'LIGN' ;
    'MESS'
'*** Erreur dans l"elevation a la puissance reelle positive' ;
    'MESS'
'    d"un MCHAML dont la composante est de type EVOLUTIOn.' ;
  'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
* Gestion de l'erreur :                                               *
'SI' IERR1 ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*------------------- 4. PUISSANCE REELLE NEGATIVE --------------------*
*                                                                     *
* Elevation a la puissance :                                          *
X1       = -1.2 ;
MAT2     = MAT1 ** X1 ;
*                                                                     *
* Verification du resultat :                                          *
'SI' ('NEG' ('TYPE' MAT2) 'MCHAML') ;
  ERR1     = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT2 'COMP')) 1) ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 1) 'K') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
EVK2     = 'EXTR' MAT2 'K' 1 1 1 ;
LX2      = 'EXTR' EVK2 'ABSC' ;
LY2      = 'EXTR' EVK2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 ** X1) - LY2)) ;
*                                                                     *
* Message de sortie :                                                 *
IERR1    = 'NEG' ERR1 0. ;
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SI' IERR1 ;
    'SAUT' 1 'LIGN' ;
    'MESS'
'*** Erreur dans l"elevation a la puissance reelle negative' ;
    'MESS'
'    d"un MCHAML dont la composante est de type EVOLUTIOn.' ;
  'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
* Gestion de l'erreur :                                               *
'SI' IERR1 ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*------------------- 5. PUISSANCE REELLE POSITIVE --------------------*
*                                                                     *
* Creation d'un 2e MCHAML :
LC1      = 'PROG' 1. 2. 3. ;
EVC1     = 'EVOL' 'MANU' 'X' LX1 'C' LC1 ;
MOD1     = 'MODE' S1 'THERMIQUE' ;
MAT1     = 'MATE' MOD1 'C' EVC1 'K' EVK1 ;
*                                                                     *
* Elevation a la puissance :                                          *
X1       = PI ;
MAT2     = MAT1 ** X1 ;
*                                                                     *
* Verification du resultat :                                          *
'SI' ('NEG' ('TYPE' MAT2) 'MCHAML') ;
  ERR1     = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT2 'COMP')) 2) ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 1) 'C') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT2 'COMP') 2) 'K') ;
  ERR1     = ERR1 + 1. ;
'FINS' ;
EVC2     = 'EXTR' MAT2 'C' 1 1 1 ;
LX2      = 'EXTR' EVC2 'ABSC' ;
LC2      = 'EXTR' EVC2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LC1 ** X1) - LC2)) ;
EVK2     = 'EXTR' MAT2 'K' 1 1 1 ;
LX2      = 'EXTR' EVK2 'ABSC' ;
LK2      = 'EXTR' EVK2 'ORDO' ;
ERR1     = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 ** X1) - LK2)) ;
*                                                                     *
* Message de sortie :                                                 *
IERR1    = 'NEG' ERR1 0. ;
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SI' IERR1 ;
    'SAUT' 1 'LIGN' ;
    'MESS'
'*** Erreur dans l"elevation a la puissance reelle positive' ;
    'MESS'
'    d"un MCHAML dont les 2 composantes sont de type EVOLUTIOn.' ;
  'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
* Gestion de l'erreur :                                               *
'SI' IERR1 ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
* Message de sortie si test reussi :                                  *
VECH1    = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
  'SAUT' 1 'LIGN' ;
  'MESS'
'***                         TEST REUSSI                           ***'
  ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
*                                                                     *
'FIN' ;
'OPTI' 'ECHO' 1 ;
 

© Cast3M 2003 - All rights reserved.
Disclaimer