Linear Algebra and the C Language/a06f


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int rc)
{
double **A   = r_mR(i_mR(rc,rc),9999.);
double **Inv =      i_mR(rc,rc);
double **ID  =      i_mR(rc,rc);

  clrscrn();
  printf(" Copy/Paste into the octave window.\n\n");
  p_Octave_mR(A,"A",P0);
  printf(" inv(A)\n");
  pE_mR(inv_mR(A,Inv),S12,P4,C4);
  stop();
  
  clrscrn();
  printf(" inv(A)*A\n");  
  p_mR(mul_mR(Inv,A,ID),S0,P4,C8);
  printf(" A*inv(A)\n");  
  p_mR(mul_mR(A,Inv,ID),S0,P4,C8);

  f_mR(ID);
  f_mR(Inv);
  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(RC4)+C1);

} while(stop_w());


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


Screen output example:

 Copy/Paste into the octave window.

 A=[
+6031,-7292,-9751;
+293,+7592,+7835;
+4201,-4220,-7824]

 inv(A)

 +2.8469e-04  +1.7191e-04  -1.8265e-04 
 -3.8058e-04  +6.7264e-05  +5.4167e-04 
 +3.5813e-04  +5.6025e-05  -5.1804e-04 

 Press return to continue. 


 inv(A)*A

+1.0000 -0.0000 -0.0000 
-0.0000 +1.0000 +0.0000 
+0.0000 +0.0000 +1.0000 

 A*inv(A)

+1.0000 -0.0000 +0.0000 
+0.0000 +1.0000 +0.0000 
+0.0000 -0.0000 +1.0000 


 Press   return to continue
 Press X return to stop