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

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: c00d1.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RC RC3 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double **u = r_mR( i_mR(RC,C1),9.); double **v = r_mR( i_mR(RC,C1),9.); double **Q = r_Q_mR( i_mR(RC,RC),9); double **Qu = mul_mR(Q,u, i_mR(RC,C1)); double **Qv = mul_mR(Q,v, i_mR(RC,C1)); clrscrn(); printf(" Calculate the cosine of the angle" " between vectors U and V: \n\n"); printf(" u:"); p_mR(u, S3,P0,C6); printf(" v:"); p_mR(v, S3,P0,C6); printf(" <u,v> \n" " cos(alpha) = ----------- = %+.4f \n" " ||u|| ||v|| \n\n\n\n\n", dot_R(u,v) / ( norm_R(u) * norm_R(v) )); stop(); clrscrn(); printf(" Q:"); p_mR(Q, S3,P4,C6); printf("\n\n\n\n\n"); stop(); clrscrn(); printf(" Calculate the cosine of the angle" " between vectors U and V: \n\n"); printf(" Qu:"); p_mR(Qu, S3,P4,C6); printf(" Qv:"); p_mR(Qv, S3,P4,C6); printf(" <Qu,Qv> \n" " cos(alpha) = ------------- = %+.4f \n" " ||Qu|| ||Qv|| \n\n\n\n\n", dot_R(Qu,Qv) / ( norm_R(Qu) * norm_R(Qv) )); stop(); clrscrn(); printf(" Orthonormal matrices preserve angles.\n\n" " Calculate the cosine of the angle between" " vectors U and V: \n\n" " <u,v> \n" " cos(alpha) = ----------- = %+.4f \n" " ||u|| ||v|| \n\n\n\n\n", dot_R(u,v) / ( norm_R(u) * norm_R(v) )); printf(" <Qu,Qv> \n" " cos(alpha) = ------------- = %+.4f \n" " ||Qu|| ||Qv|| \n\n\n\n\n", dot_R(Qu,Qv) / ( norm_R(Qu) * norm_R(Qv) )); f_mR(u); f_mR(v); f_mR(Qu); f_mR(Qv); f_mR(Q); } /* ------------------------------------ */ int main(void) { time_t t; srand(time(&t)); do { fun(); } while(stop_w()); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: Calculate the cosine of the angle between vectors U and V: u: +5 -7 +3 v: +4 -4 +3 <u,v> cos(alpha) = ----------- = +0.9771 ||u|| ||v|| Press return to continue. Q: -0.2673 +0.7379 +0.6198 -0.5345 +0.4216 -0.7325 +0.8018 +0.5270 -0.2817 Press return to continue. Calculate the cosine of the angle between vectors U and V: Qu: -4.6420 -7.8215 -0.5256 Qv: -2.1612 -6.0220 +0.2538 <Qu,Qv> cos(alpha) = ------------- = +0.9771 ||Qu|| ||Qv|| Press return to continue. Orthonormal matrices preserve angles. Calculate the cosine of the angle between vectors U and V: <u,v> cos(alpha) = ----------- = +0.9771 ||u|| ||v|| <Qu,Qv> cos(alpha) = ------------- = +0.9771 ||Qu|| ||Qv|| Press return to continue Press X return to stop