Jump to content

Linear Algebra and the C Language/a07b

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" /* ------------------------------------ */ #define RA R4 #define CA C4 #define Cb C1 /* ------------------------------------ */ int main(void) { double ab[RA*(CA+Cb)]={ // x1 x2 x3   +1, +1, +0, +0, +50, // A  +0, -1, -1, +0, -40, // B  +0, +0, +1, +0, +20 -10, // C  -1, +0, +0, +0, -30 +10 // D  }; double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb));  clrscrn();  printf(" A :");  p_mR(A,S5,P0,C7);  printf(" b :");  p_mR(b,S5,P0,C7);  printf(" Ab :");  p_mR(Ab,S5,P0,C7);  stop();  clrscrn();  printf(" Copy/Paste into the octave window.\n\n");  p_Octave_mR(Ab,"Ab",P0);  printf("\n rref(Ab,.00000000001)\n\n");  printf(" gj_TP_mR(Ab) :\n\n"  " x1 x2 x3 ");  p_mR(gj_TP_mR(Ab),S5,P0,C7);  stop();  f_mR(Ab);  f_mR(b);  f_mR(A);    return 0; } /* ------------------------------------ */ /* ------------------------------------ */ 


Screen output example:

 A :  +1 +1 +0 +0   +0 -1 -1 +0   +0 +0 +1 +0   -1 +0 +0 +0   b :  +50   -40   +10   -20   Ab :  +1 +1 +0 +0 +50   +0 -1 -1 +0 -40   +0 +0 +1 +0 +10   -1 +0 +0 +0 -20   Copy/Paste into the octave window.  Ab=[ +1,+1,+0,+0,+50; +0,-1,-1,+0,-40; +0,+0,+1,+0,+10; -1,+0,+0,+0,-20]  rref(Ab,.00000000001)  gj_TP_mR(Ab) :  x1 x2 x3   +1 +0 +0 +0 +20   -0 +1 +0 -0 +30   +0 +0 +1 +0 +10   +0 +0 +0 +0 +0   Press return to continue.