* 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