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

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 R3 #define CA C5 /* ------------------------------------ */ /* ------------------------------------ */ int main(void) { double a[RA*CA]={ +6,-4,+2,-8,+7, +9,-6,+9,-3,-9, -8,+2,+3,-4,-4 }; double **A = ca_A_mR(a, i_mR(RA,CA)); /* RA,CA */ double **A_T = transpose_mR(A, i_mR(CA,RA)); /* CA,RA */ double **AA_T = mul_mR(A,A_T, i_mR(RA,RA)); /* RA,CA CA,RA */ double **invAA_T = inv_mR(AA_T, i_mR(RA,RA)); /* RA,RA */ double **A_TinvAA_T = mul_mR(A_T,invAA_T, i_mR(CA,RA)); /* CA,RA RA,RA */ double **Ide = mul_mR(A,A_TinvAA_T, i_mR(RA,RA)); /* RA,CA CA,RA */ clrscrn(); printf(" A :"); p_mR(A, S7,P2,C5); printf(" A_T :"); p_mR(A_T, S7,P1,C5); printf(" AA_T:"); p_mR(AA_T, S7,P1,C5); stop(); clrscrn(); printf(" inv(AA_T) :"); pE_mR(invAA_T, S12,P4,C5); printf(" Pseudo Inverse = A_T inv(AA_T):"); pE_mR(A_TinvAA_T, S12,P4,C5); printf(" Ide = A (A_T inv(AA_T))"); p_mR(Ide, S7,P2,C5); stop(); f_mR(A); f_mR(A_T); f_mR(AA_T); f_mR(invAA_T); f_mR(A_TinvAA_T); f_mR(Ide); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: A : +6.00 -4.00 +2.00 -8.00 +7.00 +9.00 -6.00 +9.00 -3.00 -9.00 -8.00 +2.00 +3.00 -4.00 -4.00 A_T : +6.0 +9.0 -8.0 -4.0 -6.0 +2.0 +2.0 +9.0 +3.0 -8.0 -3.0 -4.0 +7.0 -9.0 -4.0 AA_T: +169.0 +57.0 -46.0 +57.0 +288.0 -9.0 -46.0 -9.0 +109.0 Press return to continue. inv(AA_T) : +7.1565e-03 -1.3254e-03 +2.9107e-03 -1.3254e-03 +3.7267e-03 -2.5165e-04 +2.9107e-03 -2.5165e-04 +1.0382e-02 Pseudo Inverse = A_T inv(AA_T): +7.7242e-03 +2.7601e-02 -6.7856e-02 -1.4852e-02 -1.7562e-02 +1.0631e-02 +1.1116e-02 +3.0134e-02 +3.4702e-02 -6.4918e-02 +4.2992e-04 -6.4058e-02 +5.0381e-02 -4.1812e-02 -1.8888e-02 Ide = A (A_T inv(AA_T)) +1.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 Press return to continue.