Mathc matrices/a232
Produit scalaire canonique dans Rn
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **U = r_mR(i_mR(r,r),9.);
double **Orth = i_mR(r,r);
double **Orth_Normal = i_mR(r,r);
double **Orth_Normal_T = i_mR(r,r);
clrscrn();
printf(" U :");
p_mR(U, S8,P4, C6);
orth_mR(U,Orth,NO);
printf(" Orth :");
p_mR(Orth, S8,P4, C6);
stop();
clrscrn();
printf(" Orth_Normal :");
normalize_mR(Orth,Orth_Normal);
p_mR(Orth_Normal, S8,P4, C6);
printf(" Orth_Normal_T :");
transpose_mR(Orth_Normal,Orth_Normal_T);
p_mR(Orth_Normal_T, S8,P4, C6);
printf(" Orth_Normal_T * Orth_Normal :");
mul_mR(Orth_Normal_T,Orth_Normal, U);
p_mR(U, S8,P4, C6);
f_mR(U);
f_mR(Orth);
f_mR(Orth_Normal);
f_mR(Orth_Normal_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R2)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
-------------------------------
U :
+7.0000 -4.0000 -3.0000 -7.0000
-5.0000 -3.0000 -9.0000 +1.0000
+6.0000 -3.0000 +7.0000 +7.0000
-9.0000 +6.0000 +7.0000 -9.0000
Orth :
+7.0000 -0.8848 -1.4231 -9.3842
-5.0000 -5.2251 +1.0399 -0.8205
+6.0000 -0.3298 +7.5346 +1.0598
-9.0000 +1.9948 +3.3385 -6.1365
Press return to continue.
-------------------------------
Orth_Normal :
+0.5065 -0.1560 -0.1689 -0.8310
-0.3618 -0.9212 +0.1234 -0.0727
+0.4341 -0.0582 +0.8941 +0.0939
-0.6512 +0.3517 +0.3961 -0.5434
Orth_Normal_T :
+0.5065 -0.3618 +0.4341 -0.6512
-0.1560 -0.9212 -0.0582 +0.3517
-0.1689 +0.1234 +0.8941 +0.3961
-0.8310 -0.0727 +0.0939 -0.5434
Orth_Normal_T * Orth_Normal :
+1.0000 +0.0000 -0.0000 +0.0000
+0.0000 +1.0000 -0.0000 +0.0000
-0.0000 -0.0000 +1.0000 -0.0000
+0.0000 +0.0000 -0.0000 +1.0000
Press return to continue
Press X return to stop