Mathc matrices/00v
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(R1,r),9);
double **V = r_mR( i_mR(r,C1),9);
double **A = rToeplitz_mR(U,V,i_mR(r,r) );
/* Orthogonalize : Normalize : YES; Normalize : NO; */
double **Orth = orth_mR(A, i_mR(r,r),YES);
double **Orth_T = transpose_mR(Orth,i_mR(r,r));
clrscrn();
printf(" A :");
p_mR(A, S8,P4, C6);
stop();
clrscrn();
printf(" Orth :");
p_mR(Orth, S8,P4, C6);
printf(" Orth_T :");
p_mR(Orth_T, S8,P4, C6);
printf(" Orth_T * Orth :");
mul_mR(Orth_T,Orth, A);
p_mR(A, S10,P4, C6);
f_mR(U);
f_mR(V);
f_mR(A);
f_mR(Orth);
f_mR(Orth_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Matrice de Toeplitz.
Exemple de sortie écran :
A :
+2.0000 +7.0000 -2.0000 -5.0000 -3.0000
-8.0000 +2.0000 +7.0000 -2.0000 -5.0000
+6.0000 -8.0000 +2.0000 +7.0000 -2.0000
+4.0000 +6.0000 -8.0000 +2.0000 +7.0000
+1.0000 +4.0000 +6.0000 -8.0000 +2.0000
Press return to continue.
Orth :
+0.1818 +0.5733 +0.1656 -0.0095 -0.7815
-0.7273 +0.0425 +0.2351 +0.6362 -0.0960
+0.5455 -0.5379 +0.3531 +0.4989 -0.1989
+0.3636 +0.5237 -0.3472 +0.5676 +0.3883
+0.0909 +0.3256 +0.8198 -0.1550 +0.4355
Orth_T :
+0.1818 -0.7273 +0.5455 +0.3636 +0.0909
+0.5733 +0.0425 -0.5379 +0.5237 +0.3256
+0.1656 +0.2351 +0.3531 -0.3472 +0.8198
-0.0095 +0.6362 +0.4989 +0.5676 -0.1550
-0.7815 -0.0960 -0.1989 +0.3883 +0.4355
Orth_T * Orth :
+1.0000 +0.0000 -0.0000 -0.0000 -0.0000
+0.0000 +1.0000 -0.0000 +0.0000 +0.0000
-0.0000 -0.0000 +1.0000 +0.0000 +0.0000
-0.0000 +0.0000 +0.0000 +1.0000 +0.0000
-0.0000 +0.0000 +0.0000 +0.0000 +1.0000
Press return to continue
Press X return to stop