Mathc matrices/c05k
Apparence
Produit scalaire canonique dans Rn
Installer et compiler ces fichiers dans votre répertoire de travail.
c05k.c |
---|
/* ------------------------------------ */
/* Save as : c05k.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **projuv = i_mR(r,C1);
double **umnsprojuv = i_mR(r,C1);
clrscrn();
printf(" u :");
p_mR(u,S3,P0,C6);
printf(" v :");
p_mR(v,S3,P0,C6);
proj_mR(u,v,projuv);
printf(" Vector component of u along v \n\n");
printf(" projuv : [ (<u,v> / ||v||^2) * v ]");
p_mR(projuv,S3,P3,C6);
stop();
clrscrn();
printf(" Vector component of (u-projuv) is orthogonal to v \n\n");
printf(" u - projuv :");
sub_mR(u,projuv,umnsprojuv);
p_mR(umnsprojuv,S3,P3,C6);
printf(" <v,u-projuv> = %.6f \n\n", dot_R(v,umnsprojuv));
f_mR(u);
f_mR(v);
f_mR(projuv);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Nous vérifions une des propriétés du projeté de u sur v : <v,u-projuv> = -0.000000 Exemple de sortie écran :
-------------------------------
u :
+4
-3
+8
-4
v :
+3
-3
-3
+6
Vector component of u along v
projuv : [ (<u,v> / ||v||^2) * v ]
-1.286
+1.286
+1.286
-2.571
Press return to continue.
-------------------------------
Vector component of (u-projuv) is orthogonal to v
u - projuv :
+5.286
-4.286
+6.714
-1.429
<v,u-projuv> = 0.000000
Press return to continue
Press X return to stop