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

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 RA R5 #define CA C3 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double **A = r_mR( i_mR(RA,CA),9); 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); f_mR(A); f_mR(A_T); f_mR(A_TA); f_mR(invA_TA); f_mR(invA_TAA_T); f_mR(Ide); } /* ------------------------------------ */ int main(void) { time_t t; srand(time(&t)); do { fun(); } while(stop_w()); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: A: +1.00 -3.00 -7.00 -5.00 -7.00 +8.00 +9.00 -1.00 -3.00 -4.00 +9.00 -7.00 +1.00 -2.00 -9.00 A_T: +1.00 -5.00 +9.00 -4.00 +1.00 -3.00 -7.00 -1.00 +9.00 -2.00 -7.00 +8.00 -3.00 -7.00 -9.00 A_TA: +124.00 -15.00 -55.00 -15.00 +144.00 -77.00 -55.00 -77.00 +252.00 Press return to continue. inv(A_TA): +9.6526e-03 +2.5484e-03 +2.8854e-03 +2.5484e-03 +8.9735e-03 +3.2981e-03 +2.8854e-03 +3.2981e-03 +5.6057e-03 Pseudo Inverse = inv(A_TA)*A_T -1.8190e-02 -4.3018e-02 +7.5669e-02 -3.5873e-02 -2.1413e-02 -4.7459e-02 -4.9171e-02 +4.0675e-03 +4.7481e-02 -4.5081e-02 -4.6249e-02 +7.3325e-03 +5.8531e-03 -2.1099e-02 -5.4162e-02 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 Press X return to stop