Mathc matrices/cq052
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
|---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **Q = r_Q_mR( i_mR(r,r), 9);
double **QT = transpose_mR(Q, i_mR(r,r));
double **T = i_mR(r,r);
clrscrn();
printf(" Q : An orthonormal matrix");
p_mR(Q,S3,P3,C6);
printf(" QT : QT = inv(Q) ");
p_mR(QT,S3,P3,C6);
stop();
clrscrn();
printf(" Q QT:");
p_mR(mul_mR(Q,QT,T),S3,P0,C6);
printf(" QT Q:");
p_mR(mul_mR(QT,Q,T),S3,P0,C6);
f_mR(Q);
f_mR(QT);
f_mR(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3) + R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La transposée d'une matrice orthogonale est son inverse :
Exemple de sortie écran :
Q : An orthonormal matrix
-0.557 -0.238 +0.796
-0.743 -0.286 -0.605
-0.371 +0.928 +0.017
QT : QT = inv(Q)
-0.557 -0.743 -0.371
-0.238 -0.286 +0.928
+0.796 -0.605 +0.017
Press return to continue.
Q QT:
+1 +0 -0
+0 +1 -0
-0 -0 +1
QT Q:
+1 -0 +0
-0 +1 +0
+0 +0 +1
Press return to continue
Press X return to stop