Aller au contenu

Mathc matrices/00i

Un livre de Wikilivres.


Matrices de Toeplitz

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