Mathc matrices/00i
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 **Uh = r_mR( i_mR(R1, r),9);
double **Vh = r_mR( i_mR(r ,C1),9);
double **B = rToeplitz_mR(Uh,Vh,i_mR(r , r) );
double **B_T = transpose_mR(B,i_mR(r,r));
double **S = i_mR(r,C1);
double **U = i_mR(r,r);
double **V = i_mR(r,r);
clrscrn();
printf(" Copy/Past into the octave windows \n\n\n");
p_Octave_mR(B,"B",P2);
printf(" [U, S, V] =svd (B,10)\n\n\n");
stop();
clrscrn();
svd_U_Rn_mR(B_T,U);
svd_V_Rn_mR(B_T,V);
svds_mR(B,S);
printf(" U :");
p_mR(U,S5,P5,C10);
printf(" S :");
p_mR(S,S5,P5,C10);
printf(" V:");
p_mR(V,S5,P5,C10);
f_mR(Uh);
f_mR(Vh);
f_mR(B_T);
f_mR(B);
f_mR(S);
f_mR(U);
f_mR(V);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R4)+R2);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Matrice de Toeplitz.
Exemple de sortie écran :
Copy/Past into the octave windows
B=[
+5.00,-8.00,+1.00,-1.00,+4.00;
+1.00,+5.00,-8.00,+1.00,-1.00;
-4.00,+1.00,+5.00,-8.00,+1.00;
-1.00,-4.00,+1.00,+5.00,-8.00;
-9.00,-1.00,-4.00,+1.00,+5.00]
[U, S, V] =svd (B,10)
Press return to continue.
U :
-0.41897 +0.41114 -0.69051 +0.06688 +0.41730
+0.27795 -0.58614 -0.17638 -0.39263 +0.62762
+0.31530 +0.61511 +0.48777 -0.06904 +0.52871
-0.48820 -0.32882 +0.39249 +0.59027 +0.38868
+0.63989 -0.03016 -0.31640 +0.69870 +0.03663
S :
+13.04743
+12.95321
+9.87647
+9.53290
+3.24934
V:
+0.63989 -0.03016 +0.31640 +0.69870 +0.03663
-0.48820 -0.32882 -0.39249 +0.59027 +0.38868
+0.31530 +0.61511 -0.48777 -0.06904 +0.52871
+0.27795 -0.58614 +0.17638 -0.39263 +0.62762
-0.41897 +0.41114 +0.69051 +0.06688 +0.41730
Press return to continue
Press X return to stop