Linear Algebra and the C Language/a0fw
Install and compile this file in your working directory.
/* ------------------------------------ */
/* Save as : c00e.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RA R3
/* ------------------------------------ */
void fun(void)
{
double **A = rsymmetric_mR( i_mR(RA,RA),999.);
double **EigsVector = eigs_V_mR(A, i_mR(RA,RA));
double **T_EigsVector = transpose_mR(EigsVector, i_mR(RA,RA));
double **EigsValues = i_mR(RA,RA);
double **T_EigsVectorA = i_mR(RA,RA);
clrscrn();
printf(" A:");
p_mR(A, S10,P4,C6);
printf(" EigsValues = T_EigsVector * A * EigsVector");
mul_mR(T_EigsVector,A,T_EigsVectorA);
mul_mR(T_EigsVectorA,EigsVector,EigsValues);
p_mR(EigsValues, S10,P4,C6);
printf(" trace_R(A) \t\t= %10.1f\n", trace_R(A));
printf(" trace_R(EigsValues) \t= %10.1f\n",trace_R(EigsValues));
f_mR(A);
f_mR(EigsVector);
f_mR(T_EigsVector);
f_mR(EigsValues);
f_mR(T_EigsVectorA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
trace_R(A) = trace_R(EigsValues):
Screen output example:
A:
-524.0000 +310.0000 +858.0000
+310.0000 -956.0000 -471.0000
+858.0000 -471.0000 +365.0000
EigsValues = T_EigsVector * A * EigsVector
-1523.6429 -0.0000 +0.0000
-0.0000 +920.2002 -0.0000
+0.0000 -0.0000 -511.5574
trace_R(A) = -1115.0
trace_R(EigsValues) = -1115.0
Press return to continue
Press X return to stop