Mathc complexes/a154
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(void)
double **A = rEcsymmetric_mZ(i_mZ(RCA,RCA),455.,1E-3);
double **sin_A = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **sin_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
 clrscrn();
 printf(" A :");
 p_mZ(A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(A,EigsVector,FACTOR_E);
 ctranspose_mZ(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(sin,EigsValue,sin_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,sin_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,sin_A); 
 printf(" sin(A) :");
 p_mZ(sin_A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(sin_A,EigsVector,FACTOR_E); 
 ctranspose_mZ(EigsVector,T_EigsVector); 
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,sin_A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(asin,EigsValue,sin_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,sin_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,A); 
 printf(" asin(sin(A)) = A :");
 p_mZ(A,S10,P4,S10,P4,C6);
 f_mZ(A);
 f_mZ(sin_A);
 f_mZ(EigsVector);
 f_mZ(T_EigsVector);
 f_mZ(EigsValue); 
 f_mZ(sin_EigsValue); 
 f_mZ(T1);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 asin(sin(A)) = A
 Exemple de sortie écran :
 A :
 +0.4822 +0.0000i +0.3947 -0.0161i +0.2563 +0.2044i 
 +0.3947 +0.0161i +0.4247 +0.0000i +0.2309 +0.0521i 
 +0.2563 -0.2044i +0.2309 -0.0521i +0.5002 +0.0000i 
 sin(A) :
 +0.3975 +0.0000i +0.3213 -0.0211i +0.1941 +0.1672i 
 +0.3213 +0.0211i +0.3598 +0.0000i +0.1745 +0.0256i 
 +0.1941 -0.1672i +0.1745 -0.0256i +0.4345 +0.0000i 
 asin(sin(A)) = A :
 +0.4822 +0.0000i +0.3947 -0.0161i +0.2563 +0.2044i 
 +0.3947 +0.0161i +0.4247 +0.0000i +0.2309 +0.0521i 
 +0.2563 -0.2044i +0.2309 -0.0521i +0.5002 -0.0000i 
 Press return to continue
 Press X return to stop

Mathc complexes/a155
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(void)
double **A = rEcsymmetric_mZ(i_mZ(RCA,RCA),555.,1E-3);
double **cosh_A = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **cosh_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
 clrscrn();
 printf(" A :");
 p_mZ(A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(A,EigsVector,FACTOR_E);
 ctranspose_mZ(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(cosh,EigsValue,cosh_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,cosh_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,cosh_A); 
 printf(" cosh(A):");
 p_mZ(cosh_A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(cosh_A,EigsVector,FACTOR_E);
 ctranspose_mZ(EigsVector,T_EigsVector); 
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,cosh_A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(acosh,EigsValue,cosh_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,cosh_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,A); 
 printf(" acosh(cosh(A)) = A :");
 p_mZ(A,S10,P4,S10,P4,C6);
 f_mZ(A);
 f_mZ(cosh_A);
 f_mZ(EigsVector);
 f_mZ(T_EigsVector);
 f_mZ(EigsValue); 
 f_mZ(cosh_EigsValue); 
 f_mZ(T1);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 acosh(cosh(A)) = A
 Exemple de sortie écran :
 A :
 +1.0523 +0.0000i +0.5713 -0.1581i +0.1167 +0.0724i 
 +0.5713 +0.1581i +0.4917 +0.0000i -0.2083 -0.0160i 
 +0.1167 -0.0724i -0.2083 +0.0160i +0.6680 +0.0000i 
 cosh(A):
 +1.8732 +0.0000i +0.5088 -0.1543i +0.0399 +0.0911i 
 +0.5088 +0.1543i +1.3738 +0.0000i -0.1012 +0.0294i 
 +0.0399 -0.0911i -0.1012 -0.0294i +1.2682 +0.0000i 
 acosh(cosh(A)) = A :
 +1.0523 +0.0000i +0.5713 -0.1581i +0.1167 +0.0724i 
 +0.5713 +0.1581i +0.4917 +0.0000i -0.2083 -0.0160i 
 +0.1167 -0.0724i -0.2083 +0.0160i +0.6680 +0.0000i 
 Press return to continue
 Press X return to stop

Mathc complexes/a156
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(void)
double **A = rEcsymmetric_mZ(i_mZ(RCA,RCA),455.,1E-3);
double **sinh_A = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **sinh_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
 clrscrn();
 printf(" A :");
 p_mZ(A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(A,EigsVector,FACTOR_E);
 ctranspose_mZ(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(sinh,EigsValue,sinh_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,sinh_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,sinh_A); 
 printf(" sinh(A) :");
 p_mZ(sinh_A,S10,P4,S10,P4,C6); 
 eigs_V_uv_mZ(sinh_A,EigsVector,FACTOR_E); 
 ctranspose_mZ(EigsVector,T_EigsVector); 
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,sinh_A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(asinh,EigsValue,sinh_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,sinh_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,A); 
 printf(" asinh(sinh(A)) = A :");
 p_mZ(A,S10,P4,S10,P4,C6);
 f_mZ(A);
 f_mZ(sinh_A);
 f_mZ(EigsVector);
 f_mZ(T_EigsVector);
 f_mZ(EigsValue); 
 f_mZ(sinh_EigsValue); 
 f_mZ(T1);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 asinh(sinh(A)) = A
 Exemple de sortie écran :
 A :
 +0.2480 +0.0000i -0.0292 -0.2345i +0.1522 +0.2135i 
 -0.0292 +0.2345i +0.4330 +0.0000i +0.0456 +0.0392i 
 +0.1522 -0.2135i +0.0456 -0.0392i +0.6489 +0.0000i 
 sinh(A) :
 +0.2727 +0.0000i -0.0281 -0.2531i +0.1743 +0.2392i 
 -0.0281 +0.2531i +0.4579 +0.0000i +0.0410 +0.0529i 
 +0.1743 -0.2392i +0.0410 -0.0529i +0.7147 +0.0000i 
 asinh(sinh(A)) = A :
 +0.2480 -0.0000i -0.0292 -0.2345i +0.1522 +0.2135i 
 -0.0292 +0.2345i +0.4330 +0.0000i +0.0456 +0.0392i 
 +0.1522 -0.2135i +0.0456 -0.0392i +0.6489 +0.0000i 
 Press return to continue
 Press X return to stop

Mathc initiation/a88
Installer ce fichier dans votre répertoire de travail.
/* Save as : wzst.h */
/* ------------------------------------ */
nb_Z pow_Z(
int n,
nb_Z A
nb_Z A_n = A; 
int i;
 if(!n) A_n = i_Z(1,0);
 else
 for(i=n-1; i; i--)
 A_n = mul_Z(A_n,A);
 return(A_n);
/* ------------------------------------ */
nb_Z sin_Z(
nb_Z A
nb_Z A_n;
nb_Z sA;
nb_Z sinA = i_Z(0,0);
int n = 12; 
int i;
int j; 
 for(i=1.,j=0.; i <= n; i+=2.,j++)
 A_n = pow_Z(i, A); 
 sA = smul_Z(pow((-1),j)/factorial(i), A_n);
 sinA = add_Z(sinA,sA);