Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Linear Algebra and the C Language/a06i

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

__NOTOC__ Install and compile this file in your working directory. /* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define Cb C1 /* ------------------------------------ */ void fun(int rc) { double **A = r_mR( i_mR(rc,rc),999.); double **b = r_mR( i_mR(rc,Cb),999.); double **InvA = inv_mR(A, i_mR(rc,rc)); double **X = mul_mR(InvA,b, i_mR(rc,Cb)); clrscrn(); printf(" We want to find X such as, \n\n"); printf(" AX = b \n\n"); printf(" If A is a square matrix and, \n\n"); printf(" If A has an inverse matrix, \n\n"); printf(" you can find X by this method\n\n"); printf(" X = inv(A) b \n\n\n"); printf(" To verify the result you can \n\n"); printf(" multiply the matrix A by X. \n\n"); printf(" You must refind b. \n\n"); stop(); clrscrn(); printf(" A:"); p_mR(A, S5,P0,C7); printf(" b:"); p_mR(b, S5,P0,C7); stop(); clrscrn(); printf(" inv(A):"); pE_mR(InvA, S1,P3,C7); printf(" X = inv(A) b"); p_mR(X, S13,P4,C7); stop(); clrscrn(); printf(" b:"); p_mR(b, S5,P0,C7); printf(" AX:"); p_mR(mul_mR(A,X,b), S5,P0,C7); f_mR(X); f_mR(b); f_mR(InvA); f_mR(A); } /* ------------------------------------ */ int main(void) { time_t t; srand(time(&t)); do { fun(rp_I(RC6)+RC1); } while(stop_w()); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: We want to find X such as, AX = B If A is a square matrix and, If A has an inverse matrix, you can find X by this method X = inv(A) B To verify the result you can multiply the matrix A by X. You must refind B. Press return to continue. A : -851 +472 +65 -48 +536 -411 +890 -679 -265 +995 -60 -557 +798 +609 -474 +863 +45 +678 -428 -548 +325 +708 +958 -657 +789 +415 -90 -566 -218 +366 +766 +735 -564 -356 -857 -392 -19 -115 +924 -636 -143 -999 -459 +556 +179 +88 +870 +192 +673 B : -287 +491 +722 -222 +971 +525 +263 inv(A) : -1.017e-02 -4.423e-03 +5.716e-03 -5.982e-03 -8.544e-04 -3.336e-05 +8.520e-03 +1.619e-02 +7.547e-03 -8.913e-03 +1.093e-02 +1.912e-03 -1.589e-03 -1.466e-02 -5.317e-03 -2.292e-03 +2.782e-03 -3.529e-03 +3.579e-04 -2.087e-04 +4.940e-03 -1.961e-02 -8.718e-03 +1.127e-02 -1.241e-02 -2.222e-03 +1.886e-03 +1.791e-02 -5.296e-03 -2.842e-03 +2.492e-03 -3.578e-03 -3.260e-04 +4.865e-04 +5.670e-03 +6.932e-03 +4.009e-03 -4.378e-03 +5.153e-03 +3.148e-04 -2.208e-04 -6.273e-03 -1.146e-02 -4.972e-03 +7.075e-03 -7.395e-03 -1.635e-03 +5.326e-04 +1.022e-02 X = inv(A) * B : +7.5949 -12.6374 +4.7303 +15.7849 +4.1481 -5.7861 +8.9774 Press return to continue. B : -287 +491 +722 -222 +971 +525 +263 AX : -287 +491 +722 -222 +971 +525 +263 Press return to continue Press X return to stop