Imagine un monde/Bibliographie
à venir
Mathc matrices/a71
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(void)
double **A; 
double **ExpA_EValue;
double **ExpA;
double **Log_ExpA_EValue;
double **Log_ExpA;
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);
 clrscrn();
 A = rEsymmetric_mR(i_mR(RCA,RCA),999,+1.E-3);
 printf(" Copy/Past into the octave window. \n\n");
 p_Octave_mR(A, "A", P6);
 printf(" expm (A)\n\n\n");
 stop(); 
 clrscrn();
 ExpA_EValue = i_mR(RCA,RCA); 
 ExpA = i_mR(RCA,RCA); 
 printf(" A :");
 p_mR(A, S9,P4, C6);
 eigs_V_uv_mR(A,V);
 transpose_mR(V,V_T);
/* EValue = V_T * A * V */ 
 mul_mR(V_T,A,T);
 mul_mR(T,V,EValue); 
 f_eigs_uv_mR(exp,EValue, ExpA_EValue);
 printf(" ExpA_EValue :");
 p_mR( ExpA_EValue, S9,P4, C6);
/* ExpA = V * ExpA_EValue * V_T*/ 
 mul_mR(V,ExpA_EValue,T);
 mul_mR(T,V_T,ExpA); 
 printf(" ExpA");
 p_mR(ExpA, S9,P4, C6);
 stop();
/* ================================================================== */ 
 clrscrn(); 
 printf(" Copy/Past into the octave window. \n\n");
 p_Octave_mR(ExpA,"ExpA", P6);
 printf(" logm (ExpA)\n\n\n");
 stop(); 
 clrscrn();
 Log_ExpA_EValue = i_mR(RCA,RCA); 
 Log_ExpA = i_mR(RCA,RCA); 
 printf(" ExpA :");
 p_mR(ExpA, S9,P6, C6);
 eigs_V_uv_mR(ExpA,V);
 transpose_mR(V,V_T);
/* ExpA_EValue = V_T * ExpA * V */ 
 mul_mR(V_T,ExpA,T);
 mul_mR(T,V,ExpA_EValue); 
 f_eigs_uv_mR(log,ExpA_EValue, Log_ExpA_EValue);
 printf(" Log_ExpA_EValue :");
 p_mR( Log_ExpA_EValue, S9,P6, C6);
/* Log_ExpA = V * Log_ExpA_EValue * V_T*/ 
 mul_mR(V,Log_ExpA_EValue,T);
 mul_mR(T,V_T,Log_ExpA); 
 printf(" Log_ExpA = A");
 p_mR(Log_ExpA, S9,P6, C6);
 stop();

clrscrn(); 
 printf(" A :");
 p_mR(A, S9,P4, C6);
 printf(" Log_ExpA = A");
 p_mR(Log_ExpA, S9,P4, C6); 
 f_mR(A);
 f_mR(ExpA_EValue);
 f_mR(ExpA);
 f_mR(Log_ExpA_EValue);
 f_mR(Log_ExpA); 
 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;
/* ------------------------------------ */
 Log( Exp(A) ) = A

Exemple de sortie écran :
 Copy/Past into the octave window. 
 A=[
+1.437449,-0.632466,+0.258349,-1.272949;
-0.632466,+0.776508,+0.090306,+0.558928;
+0.258349,+0.090306,+1.231620,-0.778442;
-1.272949,+0.558928,-0.778442,+1.402866]
 expm (A)
 Press return to continue. 
 ------------------------------------ 
 A :
 +1.4374 -0.6325 +0.2583 -1.2729 
 -0.6325 +0.7765 +0.0903 +0.5589 
 +0.2583 +0.0903 +1.2316 -0.7784 
 -1.2729 +0.5589 -0.7784 +1.4029 
 ExpA_EValue :
 +25.3299 +0.0000 +0.0000 +0.0000 
 +0.0000 +3.5677 +0.0000 +0.0000 
 +0.0000 +0.0000 +1.4099 +0.0000 
 +0.0000 +0.0000 +0.0000 +1.0010 
 ExpA
 +10.5842 -4.6373 +4.0812 -9.7528 
 -4.6373 +3.9330 -1.4487 +4.5956 
 +4.0812 -1.4487 +5.3045 -5.3269 
 -9.7528 +4.5956 -5.3269 +11.4867 
 Press return to continue. 
 ------------------------------------ 
 Copy/Past into the octave window. 
 ExpA=[
+10.584236,-4.637283,+4.081228,-9.752775;
-4.637283,+3.933017,-1.448681,+4.595607;
+4.081228,-1.448681,+5.304510,-5.326946;
-9.752775,+4.595607,-5.326946,+11.486747]
 logm (ExpA)
 Press return to continue. 
 ------------------------------------ 
 ExpA :
+10.584236 -4.637283 +4.081228 -9.752775 
-4.637283 +3.933017 -1.448681 +4.595607 
+4.081228 -1.448681 +5.304510 -5.326946 
-9.752775 +4.595607 -5.326946 +11.486747 
 Log_ExpA_EValue :
+3.231985 +0.000000 +0.000000 +0.000000 
+0.000000 +1.271918 +0.000000 +0.000000 
+0.000000 +0.000000 +0.343521 +0.000000 
+0.000000 +0.000000 +0.000000 +0.001018 
 Log_ExpA
+1.437449 -0.632466 +0.258349 -1.272949 
-0.632466 +0.776508 +0.090306 +0.558928 
+0.258349 +0.090306 +1.231620 -0.778442 
-1.272949 +0.558928 -0.778442 +1.402866 
 Press return to continue. 
 A :
 +1.4374 -0.6325 +0.2583 -1.2729 
 -0.6325 +0.7765 +0.0903 +0.5589 
 +0.2583 +0.0903 +1.2316 -0.7784 
 -1.2729 +0.5589 -0.7784 +1.4029 
 Log_ExpA
 +1.4374 -0.6325 +0.2583 -1.2729 
 -0.6325 +0.7765 +0.0903 +0.5589 
 +0.2583 +0.0903 +1.2316 -0.7784 
 -1.2729 +0.5589 -0.7784 +1.4029 
 Press return to continue
 Press X to stop

Mathc matrices/a72
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(void)
double **A; 
double **LogA_EValue;
double **LogA;
double **Exp_LogA_EValue;
double **Exp_LogA;
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);
 clrscrn();
 A = rEsymmetric_mR(i_mR(RCA,RCA),999,+1.E-3);
 printf(" Copy/Past into the octave window. \n\n");
 p_Octave_mR(A,"A", P4);
 printf(" logm (A)\n\n\n");
 stop(); 
 clrscrn();
 LogA_EValue = i_mR(RCA,RCA); 
 LogA = i_mR(RCA,RCA); 
 printf(" A :");
 p_mR(A, S9,P4, C6);
 eigs_V_uv_mR(A,V);
 transpose_mR(V,V_T);
/* EValue = V_T * A * V */ 
 mul_mR(V_T,A,T);
 mul_mR(T,V,EValue); 
 f_eigs_uv_mR(log,EValue, LogA_EValue);
 printf(" LogA_EValue :");
 p_mR( LogA_EValue, S9,P4, C6);
/* Log_A = V * Log_EValue * V_T*/ 
 mul_mR(V,LogA_EValue,T);
 mul_mR(T,V_T,LogA); 
 printf(" LogA");
 p_mR(LogA, S9,P4, C6);
 stop(); 
/* ================================================================== */ 
 clrscrn(); 
 printf(" Copy/Past into the octave window. \n\n");
 p_Octave_mR(LogA, "LogA", P4);
 printf(" expm (LogA)\n\n\n");
 stop(); 
 clrscrn();
 Exp_LogA_EValue = i_mR(RCA,RCA); 
 Exp_LogA = i_mR(RCA,RCA); 
 printf(" LogA :");
 p_mR(LogA, S9,P4, C6);
 eigs_V_uv_mR(LogA,V);
 transpose_mR(V,V_T); 
/* LogA_EValue = V_T * LogA * V */ 
 mul_mR(V_T,LogA,T);
 mul_mR(T,V,LogA_EValue); 
 f_eigs_uv_mR(exp,LogA_EValue, Exp_LogA_EValue);
 printf(" Exp_LogA_EValue :");
 p_mR( Exp_LogA_EValue, S9,P4, C6);
/* A = V * Exp_LogA_EValue * V_T*/ 
 mul_mR(V,Exp_LogA_EValue,T);
 mul_mR(T,V_T,Exp_LogA); 
 printf(" Exp_LogA = A");
 p_mR(Exp_LogA, S9,P4, C6);
 stop(); 
/* ================================================================== */ 
 clrscrn(); 
 printf(" A :");
 p_mR(A, S9,P4, C6);
 printf(" Exp_LogA = A");
 p_mR(Exp_LogA, S9,P4, C6); 
 f_mR(A);
 f_mR(LogA_EValue);
 f_mR(LogA);
 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( Log(A) ) = A