Jump to content

Linear Algebra and the C Language/a09u

From Wikibooks, open books for an open world


Install and compile this file in your working directory.

/* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ void fun(int r) { double **A = r_mR( i_mR(r,r),9999); double **InvA = invgj_mR(A, i_mR(r,r));  clrscrn();  printf(" A:");  p_mR(A,S8,P0,C6);  printf(" invgj_mR(A,invA):");  pE_mR(InvA,S12,P4,C6);  stop();  clrscrn();  printf(" Copy/Paste into the octave window.\n\n");  p_Octave_mR(A,"A",P0);    printf(" inv(A):");  pE_mR(InvA,S12,P4,C6);  f_mR(InvA);  f_mR(A); } /* ------------------------------------ */ int main(void) { time_t t;  srand(time(&t));   do {  fun(rp_I(C2)+C4); } while(stop_w());  return 0; } /* ------------------------------------ */ /* ------------------------------------ */ 

Screen output example:

 A:  -314 +5787 -635 -2437 +5590 -7613   +7653 +5862 -6150 -9246 +6018 -1737   +9862 -803 -7178 +6318 +485 -8361   +6166 -8009 +5799 -1846 -3464 -1034   -4697 -7557 +8893 +5762 +4152 -27   +1323 -1986 +33 -6089 +2727 -1119   Press return to continue.   invgj_mR(A,invA):  -1.7841e-05 +1.0638e-04 +4.3955e-06 +7.4680e-05 +2.7690e-05 -1.4628e-04   +6.4354e-05 +6.3918e-05 -4.9703e-05 +3.5495e-05 -1.3730e-05 -1.9814e-04   +6.8603e-05 +5.3403e-05 -6.3510e-05 +1.0324e-04 +3.6332e-05 -1.7136e-04   -1.7651e-05 +2.4517e-05 +2.8044e-05 -1.4670e-05 +4.8323e-05 -1.1512e-04   -2.6153e-05 +8.8911e-05 +1.1405e-05 -5.1790e-05 +1.0260e-04 +7.8937e-08   -1.0098e-04 +9.7182e-05 -3.3268e-05 -1.8041e-05 +4.5255e-05 -9.3379e-05   Press return to continue.   Copy/Paste into the octave window.  A=[ -314,+5787,-635,-2437,+5590,-7613; +7653,+5862,-6150,-9246,+6018,-1737; +9862,-803,-7178,+6318,+485,-8361; +6166,-8009,+5799,-1846,-3464,-1034; -4697,-7557,+8893,+5762,+4152,-27; +1323,-1986,+33,-6089,+2727,-1119]  inv(A)  -1.7841e-05 +1.0638e-04 +4.3955e-06 +7.4680e-05 +2.7690e-05 -1.4628e-04   +6.4354e-05 +6.3918e-05 -4.9703e-05 +3.5495e-05 -1.3730e-05 -1.9814e-04   +6.8603e-05 +5.3403e-05 -6.3510e-05 +1.0324e-04 +3.6332e-05 -1.7136e-04   -1.7651e-05 +2.4517e-05 +2.8044e-05 -1.4670e-05 +4.8323e-05 -1.1512e-04   -2.6153e-05 +8.8911e-05 +1.1405e-05 -5.1790e-05 +1.0260e-04 +7.8937e-08   -1.0098e-04 +9.7182e-05 -3.3268e-05 -1.8041e-05 +4.5255e-05 -9.3379e-05   Press return to continue  Press X return to stop