Linear Algebra and the C Language/a0gj


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :  c00c.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 **EigsValue = 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(" EigsValue  of A[%d] : ",i); 
	  eigs_mR(A[i],EigsValue); 
      p_mR(EigsValue, 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(EigsValue); 
}
/* ------------------------------------ */
int main(void)
{
time_t t;

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

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


Screen output example:

                                                                                       
 A[0] : 
   +12.00    -96.00    +98.00 
   -96.00    -61.00    -43.00 
   +98.00    -43.00    +36.00 

 EigsValue  of A[0] : 
  +164.85 
  -130.80 
   -47.05 

 A[1] : 
  +172.66   +224.49   +371.38 
  +214.73   +181.38   +373.84 
  -106.31   -225.20   -367.04 

 EigsValue  of A[1] : 
  +164.85 
  -130.80 
   -47.05 

 A[2] : 
  -235.76    +99.32   +177.44 
  +732.44   -751.74  -1161.56 
  -653.73   +618.71   +974.50 

 EigsValue  of A[2] : 
  +164.85 
  -130.80 
   -47.05 

 Similar matrices have the eignvalues.


 Press   return to continue
 Press X return to stop