< Mathc matrices
Installer et compiler ces fichiers dans votre répertoire de travail.
![]() |
cq4.c ' |
---|
/* ------------------------------------ */
/* Save as : cq4.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 **Qu = i_mR(r,C1);
double **Q = i_mR(r,r);
clrscrn();
r_Quv_mR(A,Q);
printf(" Q :");
p_mR(Q,3,5,6);
printf(" u :");
p_mR(u,3,5,6);
printf(" T(u) = Q*u \n\n ");
printf(" ||T(u)|| = ||u|| \n\n ");
printf(" %f = %f \n\n ",
normuv_R(mul_mR(Q,u,Qu)), normuv_R(u));
f_mR(A);
f_mR(u);
f_mR(Qu);
f_mR(Q);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(3)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La norme d'un vecteur U n'est pas changé si on multiplie U par une matrice orthogonale : r_Quv_mR(U,Q); Exemple de sortie écran :
Q :
-0.59761 +0.34316 -0.49437 +0.52981
-0.59761 +0.06056 -0.08724 -0.79472
+0.47809 +0.03633 -0.83662 -0.26491
+0.23905 +0.93662 +0.21922 -0.13245
u :
+6.00000
-1.00000
-1.00000
-3.00000
T(u) = Q*u
||T(u)|| = ||u||
6.855655 = 6.855655
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.