Mathc complexes/a122
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E +1.E-2
#define RCA RC3
#define tA C3
/* ------------------------------------ */
void fun(void)
{
int i;
double **A [tA];
double **ExpA_EValue[tA];
double **ExpA [tA];
double **V = i_mZ(RCA,RCA);
double **V_T = i_mZ(RCA,RCA);
double **EValue = i_mZ(RCA,RCA);
double **T = i_mZ(RCA,RCA);
for(i = C0; i < C3; i++)
{
clrscrn();
if(i < C2)
A[i] = rEcsymmetric_mZ(i_mZ(RCA,RCA),999,+1.E-3);
else
A[i] = add_mZ(A[C0],A[C1],i_mZ(RCA,RCA));
printf(" Copy/Past into the octave window. \n\n");
pAi_Octave_mZ(A[i], "A",i, P6, P6);
printf(" expm (A%d)\n\n\n",i);
stop();
clrscrn();
ExpA_EValue[i] = i_mZ(RCA,RCA);
ExpA[i] = i_mZ(RCA,RCA);
printf(" A[%d] :",i);
p_mZ(A[i], S11,P4, S11,P4, C4);
eigs_V_mZ(A[i],V,FACTOR_E);
ctranspose_mZ(V,V_T);
/* EValue = V_T * A * V */
mul_mZ(V_T,A[i],T);
mul_mZ(T,V,EValue);
f_eigs_mZ(exp,EValue, ExpA_EValue[i]);
printf(" ExpA_EValue[%d] :",i);
p_mZ( ExpA_EValue[i], S11,P4, S11,P4, C4);
/* ExpA[i] = V * ExpA_EValue[i] * V_T*/
mul_mZ(V,ExpA_EValue[i],T);
mul_mZ(T,V_T,ExpA[i]);
if(i < C2) printf(" ExpA[%d]",i);
else printf(" ExpA[%d] = ExpA[0+1]",i);
p_mZ(ExpA[i], S11,P4, S11,P4, C4);
stop();
}
clrscrn();
printf(" Copy/Past into the octave window. \n\n"
" expm (A0)*expm (A1) \n"
" expm (A0+A1) \n\n");
printf(" ExpA[0]*ExpA[1]");
p_mZ( mul_mZ(ExpA[C0],ExpA[C1],T), S11,P4, S11,P4, C4);
printf(" ExpA[0+1] = ExpA[C2]");
p_mZ( ExpA[C2], S11,P4, S11,P4, C4);
printf(" ExpA[0] * ExpA[1] != ExpA[0 + 1] ??? \n\n");
for(i = C0; i < C3; i++)
{
f_mZ(A[i]);
f_mZ(ExpA_EValue[i]);
f_mZ(ExpA[i]);
}
f_mZ(V);
f_mZ(V_T);
f_mZ(EValue);
f_mZ(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exp(A0) * Exp(A1) != Exp( A0 + A1 )
Exemple de sortie écran :
------------------------------------
Copy/Past into the octave window.
A0=[
+1.831649+0.000000*i,+0.038822+0.121129*i,+0.319146-0.062382*i;
+0.038822-0.121129*i,+0.991619+0.000000*i,+1.154350-0.248942*i;
+0.319146+0.062382*i,+1.154350+0.248942*i,+1.480239+0.000000*i]
expm (A0)
Press return to continue.
------------------------------------
A[0] :
+1.8316 +0.0000i +0.0388 +0.1211i +0.3191 -0.0624i
+0.0388 -0.1211i +0.9916 +0.0000i +1.1543 -0.2489i
+0.3191 +0.0624i +1.1543 +0.2489i +1.4802 +0.0000i
ExpA_EValue[0] :
+12.9184 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +5.6774 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +0.0000 +0.0000i +1.0084 +0.0000i
ExpA[0]
+6.6417 +0.0000i +1.1243 +0.6578i +2.2390 -0.0910i
+1.1243 -0.6578i +5.2887 -0.0000i +5.1395 -1.2042i
+2.2390 +0.0910i +5.1395 +1.2042i +7.6737 +0.0000i
Press return to continue.
------------------------------------
Copy/Past into the octave window.
A1=[
+2.537924+0.000000*i,+1.188052-0.486563*i,-0.216077-0.019981*i;
+1.188052+0.486563*i,+1.955302+0.000000*i,-0.701645+0.450713*i;
-0.216077+0.019981*i,-0.701645-0.450713*i,+2.592323+0.000000*i]
expm (A1)
Press return to continue.
------------------------------------
A[1] :
+2.5379 +0.0000i +1.1881 -0.4866i -0.2161 -0.0200i
+1.1881 +0.4866i +1.9553 +0.0000i -0.7016 +0.4507i
-0.2161 +0.0200i -0.7016 -0.4507i +2.5923 +0.0000i
ExpA_EValue[1] :
+48.9776 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +11.8151 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +0.0000 +0.0000i +2.0643 +0.0000i
ExpA[1]
+24.0039 +0.0000i +17.5788 -6.0976i -7.9075 +5.3266i
+17.5788 +6.0976i +20.0436 +0.0000i -11.6855 +5.6408i
-7.9075 -5.3266i -11.6855 -5.6408i +18.8096 +0.0000i
Press return to continue.
------------------------------------
Copy/Past into the octave window.
A2=[
+4.369573+0.000000*i,+1.226874-0.365434*i,+0.103069-0.082363*i;
+1.226874+0.365434*i,+2.946921+0.000000*i,+0.452705+0.201771*i;
+0.103069+0.082363*i,+0.452705-0.201771*i,+4.072562+0.000000*i]
expm (A2)
Press return to continue.
------------------------------------
A[2] :
+4.3696 +0.0000i +1.2269 -0.3654i +0.1031 -0.0824i
+1.2269 +0.3654i +2.9469 +0.0000i +0.4527 +0.2018i
+0.1031 +0.0824i +0.4527 -0.2018i +4.0726 +0.0000i
ExpA_EValue[2] :
+186.3044 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +57.0973 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i +0.0000 +0.0000i +8.3055 +0.0000i
ExpA[2] = ExpA[0+1]
+129.7620 +0.0000i +70.0990 -22.2056i +25.9314 -4.9375i
+70.0990 +22.2056i +55.5771 -0.0000i +26.1629 +8.0671i
+25.9314 +4.9375i +26.1629 -8.0671i +66.3681 +0.0000i
Press return to continue.
------------------------------------
Copy/Past into the octave window.
expm (A0)*expm (A1)
expm (A0+A1)
ExpA[0]*ExpA[1]
+156.9904 +7.2117i +112.6113 -38.8811i -27.2528 +32.3218i
+72.9020 -1.3945i +54.9077 -33.3379i +29.4837 +18.3723i
+76.0685 +13.8159i +53.2565 -31.2033i +59.3001 +26.1262i
ExpA[0+1] = ExpA[C2]
+129.7620 +0.0000i +70.0990 -22.2056i +25.9314 -4.9375i
+70.0990 +22.2056i +55.5771 -0.0000i +26.1629 +8.0671i
+25.9314 +4.9375i +26.1629 -8.0671i +66.3681 +0.0000i
ExpA[0] * ExpA[1] != ExpA[0 + 1] ???
Press return to continue
Press X to stop