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

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: c00b.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R5 #define CA C3 /* ------------------------------------ */ int main(void) { double tA[RA*CA]={ -8, +6, -3, +4, -9, +5, -7, -5, -5, +9, +9, -1, +3, -8, +3 }; double **A = ca_A_mR(tA, i_mR(RA,CA)); double **A_T = transpose_mR(A, i_mR(CA,RA)); double **A_TA = mul_mR(A_T,A, i_mR(CA,CA)); double **invA_TA = inv_mR(A_TA, i_mR(CA,CA)); double **invA_TAA_T = mul_mR(invA_TA,A_T, i_mR(CA,RA)); double **Ide = mul_mR(invA_TAA_T,A, i_mR(CA,CA)); clrscrn(); printf(" A:"); p_mR(A, S7,P2,C5); printf(" A_T:"); p_mR(A_T, S7,P2,C5); printf(" A_TA:"); p_mR(A_TA, S7,P2,C5); stop(); clrscrn(); printf(" inv(A_TA):"); pE_mR(invA_TA, S12,P4,C5); printf(" Pseudo Inverse = inv(A_TA) A_T"); pE_mR(invA_TAA_T, S12,P4,C5); printf(" Ide = (inv(A_TA) A_T) A"); p_mR(Ide, S8,P2,C5); stop(); f_mR(A); f_mR(A_T); f_mR(A_TA); f_mR(invA_TA); f_mR(invA_TAA_T); f_mR(Ide); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: A: -8.00 +6.00 -3.00 +4.00 -9.00 +5.00 -7.00 -5.00 -5.00 +9.00 +9.00 -1.00 +3.00 -8.00 +3.00 A_T: -8.00 +4.00 -7.00 +9.00 +3.00 +6.00 -9.00 -5.00 +9.00 -8.00 -3.00 +5.00 -5.00 -1.00 +3.00 A_TA: +219.00 +8.00 +79.00 +8.00 +287.00 -71.00 +79.00 -71.00 +69.00 Press return to continue. inv(A_TA): +1.0955e-02 -4.5720e-03 -1.7247e-02 -4.5720e-03 +6.5823e-03 +1.2008e-02 -1.7247e-02 +1.2008e-02 +4.6595e-02 Pseudo Inverse = inv(A_TA) A_T -6.3329e-02 -1.2675e-03 +3.2411e-02 +7.4691e-02 +1.7700e-02 +4.0047e-02 -1.7490e-02 -6.0946e-02 +6.0851e-03 -3.0351e-02 +7.0236e-02 +5.5918e-02 -1.7229e-01 -9.3747e-02 -8.0175e-03 Ide = (inv(A_TA) A_T) A +1.00 +0.00 -0.00 -0.00 +1.00 -0.00 -0.00 -0.00 +1.00 Press return to continue.