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/a0mw

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 : c03d.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R3 #define CA C3 #define RX R3 #define CX C1 /* ------------------------------------ */ /* ------------------------------------ */ int main(void) { double a[RA*CA]={ +3, -4, -2, +5, -3, -1, +4, -3, -1 }; double x_B[RX*CX]={ +1, +2, +3 }; double b[RA*CA]={ +1, +2, +6, +3, +4, +1, +5, +5, +2 }; double **A = ca_A_mR(a, i_mR(RA,CA)); double **B = ca_A_mR(b, i_mR(RA,CA)); double **x_b = ca_A_mR(x_B, i_mR(RX,CX)); double **x_s = mul_mR(B,x_b, i_mR(RX,CX)); double **T = i_mR(RA,CX) ; double **invB = inv_mR(B, i_mR(RA,CA)); double **invBA = mul_mR(invB,A, i_mR(RA,CA)); double **D = mul_mR(invBA,B, i_mR(RA,CA)); double **Dx_b = mul_mR(D,x_b, i_mR(RA,CX)); clrscrn(); printf(" In the Standard basis the linear application is:\n\n" " With A :"); p_mR(A,S6,P2,C7); printf(" And x_s:"); p_mR(x_s,S6,P2,C7); printf(" T(x_s) = A x_s"); p_mR(mul_mR(A,x_s,T),S8,P2,C7); stop(); clrscrn(); printf(" In the \"B\" basis the linear application is: \n\n" " With D: (InvB A B)"); p_mR(D,S7,P2,C7); printf(" And x_b:"); p_mR(x_b,S7,P2,C7); printf(" [T(x_b)]_b = D x_b"); p_mR(mul_mR(D,x_b,Dx_b),S8,P2,C7); stop(); clrscrn(); printf(" A \n" " x_s -----------> T(x_s) \n" " ^ ^ \n" " | | \n" " B | | B \n" " | D | \n" " x_b -----------> [T(x_b)]_b\n\n" " Verify if: B [T(x_b)]_b = T(x_s)\n\n"); printf(" B [T(x_b)]_b:"); p_mR(mul_mR(B,Dx_b,T),S8,P2,C7); printf(" T(x_s):"); p_mR(mul_mR(A,x_s,T),S8,P2,C7); stop(); f_mR(A); f_mR(B); f_mR(D); f_mR(x_b); f_mR(x_s); f_mR(T); f_mR(invB); f_mR(invBA); f_mR(Dx_b); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: In the Standard basis the linear application is: With A : +3.00 -4.00 -2.00 +5.00 -3.00 -1.00 +4.00 -3.00 -1.00 And x_s: +23.00 +14.00 +21.00 T(x_s) = A x_s -29.00 +52.00 +29.00 Press return to continue. In the "B" basis the linear application is: With D: (InvB A B) +2.45 +1.52 -9.03 -3.48 -2.17 +13.34 -2.41 -2.86 -1.28 And x_b: +1.00 +2.00 +3.00 [T(x_b)]_b = D x_b -21.62 +32.21 -11.97 Press return to continue. A x_s -----------> T(x_s) ^ ^ | | B | | B | D | x_b -----------> [T(x_b)]_b Verify if: B [T(x_b)]_b = T(x_s) B [T(x_b)]_b: -29.00 +52.00 +29.00 T(x_s): -29.00 +52.00 +29.00 Press return to continue.