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

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 : c00f.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ void fun(int r) { double **A = r_mR( i_mR(r,r), 9); double **AT = transpose_mR(A, i_mR(r,r)); double **AplsAT = add_mR(A,AT, i_mR(r,r)); double **AmnsAT = sub_mR(A,AT, i_mR(r,r)); double **AplsAT2 = smul_mR(1./2., AplsAT, i_mR(r,r)); double **AmnsAT2 = smul_mR(1./2., AmnsAT, i_mR(r,r)); double **T = add_mR(AplsAT2,AmnsAT2, i_mR(r,r)); clrscrn(); printf(" A"); p_mR(A, S7,P3, C6); printf(" Symmetric matrix : A + AT"); p_mR(AplsAT, S7,P3, C6); printf(" Skew matrix : A - AT"); p_mR(AmnsAT, S7,P3, C6); stop(); clrscrn(); printf(" A "); p_mR(A, S7,P3, C6); printf(" A = (A + AT)/2 + (A - AT)/2"); p_mR(T, S7,P3, C6); f_mR(A); f_mR(T); f_mR(AT); f_mR(AplsAT); f_mR(AmnsAT); f_mR(AplsAT2); f_mR(AmnsAT2); } /* ------------------------------------ */ int main(void) { time_t t; srand(time(&t)); do { fun(rp_I(R4)+R1); } while(stop_w()); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Let A be a square matrix: A = (A+AT)/2 + (A-AT)/2 Screen output example: A -1.000 -7.000 -5.000 +4.000 +3.000 +4.000 -8.000 +7.000 -4.000 +6.000 +7.000 +1.000 -7.000 -4.000 -1.000 +8.000 Symmetric matrix : A + AT -2.000 -4.000 -9.000 -3.000 -4.000 +8.000 -2.000 +3.000 -9.000 -2.000 +14.000 +0.000 -3.000 +3.000 +0.000 +16.000 Skew matrix : A - AT +0.000 -10.000 -1.000 +11.000 +10.000 +0.000 -14.000 +11.000 +1.000 +14.000 +0.000 +2.000 -11.000 -11.000 -2.000 +0.000 Press return to continue. A -1.000 -7.000 -5.000 +4.000 +3.000 +4.000 -8.000 +7.000 -4.000 +6.000 +7.000 +1.000 -7.000 -4.000 -1.000 +8.000 A = (A + AT)/2 + (A - AT)/2 -1.000 -7.000 -5.000 +4.000 +3.000 +4.000 -8.000 +7.000 -4.000 +6.000 +7.000 +1.000 -7.000 -4.000 -1.000 +8.000 Press return to continue Press X return to stop