Linear Algebra and the C Language/a0gj


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as:  c00g.c                    */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define  ARRAY  A3 
#define    RCA  R3  
/* ------------------------------------ */
void fun(void)
{
double **A[ARRAY];
double **P[ARRAY];
double **InvP[ARRAY];

double **T      = i_mR(RCA,RCA);
double **EValue = i_mR(RCA,C1);

int i;

  for(i=A0; i<ARRAY; i++)
     {   
         A[i] =              i_mR(RCA,RCA); 
         P[i] =   r_mR(      i_mR(RCA,RCA),999); 
      InvP[i] = inv_mR(P[i], i_mR(RCA,RCA));       
	   } 

  rsymmetric_mR(A[0],99);
  
    for(i=A0; i<(ARRAY-C1); i++)
     {   
        mul_mR(InvP[i],A[i],T); 
        mul_mR(T,P[i],A[i+C1]);
	   } 

  clrscrn();
  for(i=A0; i<ARRAY; i++)
     {
	  printf(" A[%d]: ",i); 
      p_mR(A[i],S9,P2,C6);
      
	  printf(" EValue  of A[%d]: ",i); 
	  eigs_mR(A[i],EValue); 
      p_mR(EValue, S9,P2,C6); 
     } 
     
  printf(" Similar matrices have the eignvalues.\n\n");
	  
  for(i=A0; i<ARRAY; i++)
     { 
	   f_mR(A[i]);
	   f_mR(P[i]);		 
	   f_mR(InvP[i]); 
	   }
	   
  f_mR(T);       
  f_mR(EValue); 
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
  do{
        fun();
        
  }while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


Screen output example:

                                                                                       
 A[0]: 
   +71.00     -1.00    -25.00 
    -1.00    +54.00    -82.00 
   -25.00    -82.00    -34.00 

 EValue  of A[0]: 
  +107.31 
   -86.14 
   +69.84 

 A[1]: 
  +100.02    -14.46    +17.57 
   -42.03    -83.65     -0.21 
    +0.31    -33.17    +74.63 

 EValue  of A[1]: 
  +107.31 
   -86.14 
   +69.84 

 A[2]: 
  +107.12   -129.37    -55.43 
   +44.14    -22.66   -100.32 
   +41.02   -138.32     +6.54 

 EValue  of A[2]: 
  +107.31 
   -86.14 
   +69.84 

 Similar matrices have the eignvalues.


 Press   return to continue
 Press X return to stop