Mathc matrices/a73
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RCA RC4
#define tA R3
/* ------------------------------------ */
void fun(void)
{
int i;
double **A [tA];
double **Exp_EValue[tA];
double **Exp [tA];
double **V = i_mR(RCA,RCA);
double **V_T = i_mR(RCA,RCA);
double **EValue = i_mR(RCA,RCA);
double **T = i_mR(RCA,RCA);
for(i = C0; i < C3; i++)
{
clrscrn();
if(i < C2)
A[i] = rEsymmetric_mR(i_mR(RCA,RCA),999,+1.E-3);
else
A[i] = add_mR(A[C0],A[C1],i_mR(RCA,RCA));
printf(" Copy/Past into the octave window. \n\n");
pAi_Octave_mR(A[i], "A",i, P6);
printf(" expm (A%d)\n\n\n",i);
stop();
clrscrn();
Exp_EValue[i] = i_mR(RCA,RCA);
Exp[i] = i_mR(RCA,RCA);
printf(" A[%d] :",i);
p_mR(A[i], S9,P4, C6);
eigs_V_mR(A[i],V);
transpose_mR(V,V_T);
/* EValue = V_T * A * V */
mul_mR(V_T,A[i],T);
mul_mR(T,V,EValue);
f_eigs_mR(exp,EValue, Exp_EValue[i]);
printf(" Exp_EValue[%d] :",i);
p_mR( Exp_EValue[i], S9,P4, C6);
/* Exp[i] = V * Exp_EValue[i] * V_T*/
mul_mR(V,Exp_EValue[i],T);
mul_mR(T,V_T,Exp[i]);
printf(" exp[%d]",i);
p_mR(Exp[i], S9,P4, C6);
stop();
}
clrscrn();
printf(" Copy/Past into the octave window. \n\n"
" expm (A0)*expm (A1) \n"
" expm (A0+A1) \n\n");
printf(" expm (A0)*expm (A1)");
p_mR( mul_mR(Exp[C0],Exp[C1],T), S12,P4, C6);
printf(" expm (A0+A1)");
p_mR( Exp[C2], S12,P4, C6);
printf(" expm (A0)*expm (A1) != expm (A0+A1) ??? \n\n");
for(i = C0; i < C3; i++)
{
f_mR(A[i]);
f_mR(Exp_EValue[i]);
f_mR(Exp[i]);
}
f_mR(V);
f_mR(V_T);
f_mR(EValue);
f_mR(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=[
+0.926039,+1.151893,-0.259047,-0.709984;
+1.151893,+1.954454,-0.562496,-0.640626;
-0.259047,-0.562496,+0.406068,+0.020190;
-0.709984,-0.640626,+0.020190,+0.712226]
expm (A0)
Press return to continue.
------------------------------------
A[0] :
+0.9260 +1.1519 -0.2590 -0.7100
+1.1519 +1.9545 -0.5625 -0.6406
-0.2590 -0.5625 +0.4061 +0.0202
-0.7100 -0.6406 +0.0202 +0.7122
Exp_EValue[0] :
+24.2110 +0.0000 +0.0000 +0.0000
+0.0000 +1.9141 +0.0000 +0.0000
+0.0000 +0.0000 +1.1625 +0.0000
+0.0000 +0.0000 +0.0000 +1.0122
exp[0]
+7.3057 +8.9482 -2.3281 -4.3470
+8.9482 +14.4426 -3.6935 -5.8016
-2.3281 -3.6935 +2.3150 +1.3364
-4.3470 -5.8016 +1.3364 +4.2366
Press return to continue.
------------------------------------
Copy/Past into the octave window.
A1=[
+1.876298,-0.851919,-1.378439,+1.374674;
-0.851919,+1.576350,+0.179698,-0.749190;
-1.378439,+0.179698,+1.966994,-0.185545;
+1.374674,-0.749190,-0.185545,+1.913339]
expm (A1)
Press return to continue.
------------------------------------
A[1] :
+1.8763 -0.8519 -1.3784 +1.3747
-0.8519 +1.5764 +0.1797 -0.7492
-1.3784 +0.1797 +1.9670 -0.1855
+1.3747 -0.7492 -0.1855 +1.9133
Exp_EValue[1] :
+78.5798 +0.0000 +0.0000 +0.0000
+0.0000 +6.9838 +0.0000 +0.0000
+0.0000 +0.0000 +2.7166 +0.0000
+0.0000 +0.0000 +0.0000 +1.0262
exp[1]
+33.6139 -17.7914 -22.4920 +25.2316
-17.7914 +13.3448 +10.6384 -14.7030
-22.4920 +10.6384 +19.3749 -14.9004
+25.2316 -14.7030 -14.9004 +22.9728
Press return to continue.
------------------------------------
Copy/Past into the octave window.
A2=[
+2.802337,+0.299974,-1.637486,+0.664690;
+0.299974,+3.530804,-0.382798,-1.389816;
-1.637486,-0.382798,+2.373062,-0.165355;
+0.664690,-1.389816,-0.165355,+2.625565]
expm (A2)
Press return to continue.
------------------------------------
A[2] :
+2.8023 +0.3000 -1.6375 +0.6647
+0.3000 +3.5308 -0.3828 -1.3898
-1.6375 -0.3828 +2.3731 -0.1654
+0.6647 -1.3898 -0.1654 +2.6256
Exp_EValue[2] :
+95.9198 +0.0000 +0.0000 +0.0000
+0.0000 +85.2732 +0.0000 +0.0000
+0.0000 +0.0000 +4.3602 +0.0000
+0.0000 +0.0000 +0.0000 +2.3393
exp[2]
+47.4584 +7.4673 -38.0527 +14.6453
+7.4673 +65.6300 -12.8837 -40.4640
-38.0527 -12.8837 +35.6281 -6.6984
+14.6453 -40.4640 -6.6984 +39.1761
Press return to continue.
------------------------------------
Copy/Past into the octave window.
expm (A0)*expm (A1)
expm (A0+A1)
expm (A0)*expm (A1)
+29.0550 +28.5797 -49.4610 -12.4030
-19.4793 +79.5411 -32.7326 -64.8161
-30.8943 -2.8899 +38.0113 -8.2305
+33.9381 -48.1564 -1.1822 +53.0337
expm (A0+A1)
+47.4584 +7.4673 -38.0527 +14.6453
+7.4673 +65.6300 -12.8837 -40.4640
-38.0527 -12.8837 +35.6281 -6.6984
+14.6453 -40.4640 -6.6984 +39.1761
expm (A0)*expm (A1) != expm (A0+A1) ???
Press return to continue
Press X to stop