Mathc matrices/062
Apparence
Quelques propriétés des vecteurs propres.
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-3
#define RCA RC4
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double a[RCA*(RCA*C2)] ={
-680, +0, +249, +0, +71, +0, -582, +0,
+940, +0, +359, +0, +62, +0, -333, +0,
+659, +0, +461, +0, +500, +0, -86, +0,
+634, +0, -41, +0, +310, +0, +218, +0 };
double evector[RCA*(RCA*C2)] ={
-0.086941675784,+0.137530775811, -0.086941675784,-0.137530775811, -0.503370390731,+0.000000000000, -0.341984712854,+0.000000000000,
+0.079982417904,+0.478215807143, +0.079982417904,-0.478215807143, +0.725879046248,+0.000000000000, +0.764895765405,+0.000000000000,
+0.690803310381,+0.311037125623, +0.690803310381,-0.311037125623, +0.037125716105,+0.000000000000, -0.101013435459,+0.000000000000,
+0.405568216447,+0.000000000000, +0.405568216447,-0.000000000000, +0.467268168354,+0.000000000000, +0.536448702203,+0.000000000000
};
double evalue[RCA*(RCA*C2)] ={
+602.025962393876,+404.393554681167, +0.000000000000, +0.000000000000, +0.000000000000,+0.000000000000, +0.000000000000,+0.000000000000,
+0.000000000000, +0.000000000000, +602.025962393865,-404.393554681167, +0.000000000000,+0.000000000000, +0.000000000000,+0.000000000000,
+0.000000000000, +0.000000000000, +0.000000000000, +0.000000000000, -504.045539320427,+0.000000000000, +0.000000000000,+0.000000000000,
+0.000000000000, +0.000000000000, +0.000000000000, +0.000000000000, +0.000000000000,+0.000000000000, -303.006385467296,+0.000000000000 };
double **A = ca_A_mZ(a, i_mZ(RCA,RCA));
double **EVector = ca_A_mZ(evector, i_mZ(RCA,RCA));
double **invEVector = invgj_mZ(EVector, i_mZ(RCA,RCA));
double **T = i_mZ(RCA,RCA);
double **EValue = ca_A_mZ(evalue, i_mZ(RCA,RCA));
clrscrn();
printf(" A :");
p_mRZ(A, S8,P0, C4);
printf(" EVector :");
p_mZ(EVector, S8,P4, S6,P4, C4);
printf(" invEVector :");
p_mZ(invEVector, S8,P4, S6,P4, C4);
stop();
clrscrn();
printf(" EValue : invEVector * A * EVector");
mul_mZ(invEVector,A,T);
mul_mZ(T,EVector,EValue);
p_mZ(clean_eyes_mZ(EValue), S8,P2, S7,P2, C4);
printf(" A :");
p_mRZ(A, S8,P0, C4);
printf(" A = EVector * EValue * invEVector");
mul_mZ(EVector,EValue,T);
mul_mZ(T,invEVector,A);
p_mRZ(A, S8,P0, C4);
stop();
clrscrn();
printf(" det(EVector) = ");
p_Z(det_Z(EVector), S4,P4, S5,P4);
printf("\n\n\n\n");
stop();
f_mZ(A);
f_mZ(EVector);
f_mZ(invEVector);
f_mZ(T);
f_mZ(EValue);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Matrices non symétriques : (Étude avec la bibliothèque des nombres complexes)
Le déterminant de la matrice des vecteurs propres est différent de zéro. Les vecteurs forment une base. L'étude de cette matrice a été effectué Ici
Exemple de sortie écran :
A :
-680 +249 +71 -582
+940 +359 +62 -333
+659 +461 +500 -86
+634 -41 +310 +218
EVector :
-0.0869+0.1375i -0.0869-0.1375i -0.5034+0.0000i -0.3420+0.0000i
+0.0800+0.4782i +0.0800-0.4782i +0.7259+0.0000i +0.7649+0.0000i
+0.6908+0.3110i +0.6908-0.3110i +0.0371+0.0000i -0.1010+0.0000i
+0.4056+0.0000i +0.4056-0.0000i +0.4673+0.0000i +0.5364+0.0000i
invEVector :
+0.1598-0.4183i -0.3140-0.6932i +0.4121-0.3567i +0.6271+0.6546i
+0.1598+0.4183i -0.3140+0.6932i +0.4121+0.3567i +0.6271-0.6546i
-4.0396+0.0000i +0.4036-0.0000i +1.1657-0.0000i -2.9311+0.0000i
+3.2770-0.0000i +0.1232+0.0000i -1.6385+0.0000i +3.4690-0.0000i
Press return to continue.
EValue : invEVector * A * EVector
+602.03+404.39i +0.00 +0.00i +0.00 +0.00i +0.00 +0.00i
+0.00 +0.00i +602.03-404.39i +0.00 +0.00i +0.00 +0.00i
+0.00 +0.00i +0.00 +0.00i -504.05 +0.00i +0.00 +0.00i
+0.00 +0.00i +0.00 +0.00i +0.00 +0.00i -303.01 -0.00i
A :
-680 +249 +71 -582
+940 +359 +62 -333
+659 +461 +500 -86
+634 -41 +310 +218
A = EVector * EValue * invEVector
-680 +249 +71 -582
+940 +359 +62 -333
+659 +461 +500 -86
+634 -41 +310 +218
Press return to continue.
det(EVector) = +0.0000-0.1386i
Press return to continue.