< Mathc matrices
Installer et compiler ces fichiers dans votre répertoire de travail.
![]() |
cq5.c ' |
---|
/* ------------------------------------ */
/* Save as : cq5.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = r_mR(i_mR(r,r),9.);
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **Qu = i_mR(r,C1);
double **Qv = i_mR(r,C1);
double **Q = i_mR(r,r);
clrscrn();
r_Quv_mR(A,Q);
printf(" Q : an orthogonal matrix ");
p_mR(Q,3,5,6);
printf(" u :");
p_mR(u,3,1,6);
printf(" v :");
p_mR(v,3,1,6);
printf(" Q u . Q v = u . v \n\n ");
printf(" %.1f = %.1f \n\n ",
dotuv_R(mul_mR(Q,u,Qu), mul_mR(Q,v,Qv)),
dotuv_R(u,v));
f_mR(A);
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(rp_I(3)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Le produit scalaire de deux vecteurs est égale au produit produit scalaire de ces mêmes vecteurs multiplié par une même matrice orthogonale : r_Quv_mR(U,Q); Exemple de sortie écran :
Q : an orthogonal matrix
-0.61632 -0.57442 -0.53870
+0.70436 -0.09618 -0.70330
+0.35218 -0.81289 +0.46388
u :
-9.0
-7.0
-7.0
v :
-9.0
+6.0
-3.0
Q u . Q v = u . v
60.0 = 60.0
Press return to continue
Press X to stop
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.