Mathc matrices/c20b
Installer et compiler ces fichiers dans votre répertoire de travail.
c01b.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
#include "dot_diag.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = rpdiag_mR(i_mR(r,r),9);
double **u = r_mR(i_mR(r,C1),99.);
double **v = r_mR(i_mR(r,C1),99.);
clrscrn();
printf(" A :");
p_mR(A,S3,P0,C6);
printf(" u :");
p_mR(u,S3,P0,C6);
printf(" v :");
p_mR(v,S3,P0,C6);
printf(" <u,v> = v^t sqrt(A)^t sqrt(A) u \n");
printf(" <u,v> = %.0f \n", dot_Diag_R(A,u,v));
printf(" <v,u> = %.0f \n", dot_Diag_R(A,v,u));
f_mR(A);
f_mR(u);
f_mR(v);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R1);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Dans cet exemple nous utilisons une matrice diagonale aléatoire.
Exemple de sortie écran :
------------------------------------
A :
+6 +0
+0 +2
u :
-43
+66
v :
-10
+19
<u,v> = v^t sqrt(A)^t sqrt(A) u
<u,v> = 5088
<v,u> = 5088
Press return to continue
Press X to stop