Linear Algebra and the C Language/a0cj
Install and compile this file in your working directory.
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RCA RC2
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double a[RCA*RCA] ={
+0.390243902439, +0.487804878049,
+0.487804878049, +0.609756097561
};
double **A = ca_A_mR(a, i_mR(RCA,RCA));
double **V = eigs_V_mR(A, i_mR(RCA,RCA));
double **invV = invgj_mR(V, i_mR(RCA,RCA));
double **EValue = i_mR(RCA,RCA);
double **T = i_mR(RCA,RCA);
clrscrn();
printf(" A :");
p_mR(A, S8,P6, C3);
printf(" V :");
p_mR(V, S9,P6, C4);
printf(" EValue = invV * A * V");
mul_mR(invV,A,T);
mul_mR(T,V,EValue);
p_mR(EValue, S9,P6, C4);
printf("\n\n"
" A = V * EValue * invV (Just verify the computation)");
mul_mR(V,EValue,T);
mul_mR(T,invV,A);
p_mR(A, S8,P6, C3);
stop();
clrscrn();
printf(" V1 V2 :");
p_mR(V, S9,P6, C4);
printf(" EValue1 EValue2 ");
p_mR(EValue, S9,P6, C4);
printf(" det(V) = %.2f\n"
" det(V) != 0.00 V1 and V2 are linearly independent\n\n\n",
det_R(V));
printf(" The matrix A projects the plane in the direction\n"
" of the eigenvector V2 on a line determined by\n"
" the eigenvector V1 if :\n\n"
" The eigenvector V1 has its eigenvalue equal to one and\n"
" The eigenvector V2 has its eigenvalue equal to zero and\n\n"
" If The vectors V1 and V2 are linearly independent\n\n");
stop();
f_mR(A);
f_mR(V);
f_mR(invV);
f_mR(T);
f_mR(EValue);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Screen output example:
A :
+0.390244 +0.487805
+0.487805 +0.609756
V :
+0.624695 +0.780869
+0.780869 -0.624695
EValue = invV * A * V
+1.000000 +0.000000
+0.000000 -0.000000
A = V * EValue * invV (Just verify the computation)
+0.390244 +0.487805
+0.487805 +0.609756
Press return to continue.
V1 V2 :
+0.624695 +0.780869
+0.780869 -0.624695
EValue1 EValue2
+1.000000 +0.000000
+0.000000 -0.000000
det(V) = -1.00
det(V) != 0.00 V1 and V2 are linearly independent
The matrix A projects the plane in the direction
of the eigenvector V2 on a line determined by
the eigenvector V1 if :
The eigenvector V1 has its eigenvalue equal to one and
The eigenvector V2 has its eigenvalue equal to zero and
If The vectors V1 and V2 are linearly independent
Press return to continue.