Linear Algebra and the C Language/a0d6
Install and compile this file in your working directory.
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RCA RC3
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = rsymmetric_mR( i_mR(RCA,RCA),999.);
double **EigsVector = eigs_V_mR(A, i_mR(RCA,RCA));
double **T_EigsVector = transpose_mR(EigsVector, i_mR(RCA,RCA));
double **EigsValue = i_mR(RCA,RCA);
double **T = i_mR(RCA,RCA);
clrscrn();
printf(" A :");
p_mR(A,S10,P2,C6);
/* EigsValue = T_EigsVector * A * EigsVector */
mul_mR(T_EigsVector,A,T);
mul_mR(T,EigsVector,EigsValue);
/* A = EigsVector * EigsValue * T_EigsVecto */
mul_mR(EigsVector,EigsValue,T);
mul_mR(T,T_EigsVector,A);
printf(" EigsVector:");
p_mR(EigsVector,S10,P4,C6);
printf(" EigsValue:");
p_mR(EigsValue,S10,P4,C6);
printf(" A = EigsVector * EigsValue * T_EigsVector");
p_mR(A,S10,P2,C6);
f_mR(A);
f_mR(EigsVector);
f_mR(T_EigsVector);
f_mR(EigsValue);
f_mR(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Screen output example:
A :
-525.00 -851.00 -325.00
-851.00 -329.00 +454.00
-325.00 +454.00 -785.00
EigsVector:
+0.6956 +0.3766 -0.6119
+0.6964 -0.1437 +0.7032
-0.1769 +0.9152 +0.3622
EigsValue:
-1294.3363 +0.0000 -0.0000
+0.0000 -990.0335 -0.0000
-0.0000 -0.0000 +645.3698
A = EigsVector * EigsValue * T_EigsVector
-525.00 -851.00 -325.00
-851.00 -329.00 +454.00
-325.00 +454.00 -785.00
Press return to continue
Press X return to stop