Mathc matrices/h11b

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche


Sommaire


Installer ce fichier dans votre répertoire de travail.

Crystal Clear mimetype source h.png vgjeignv.h
'
/* ------------------------------------ */
/*  Save as :   vgjeignv.h             */
/* ------------------------------------ */
void gj_freevariable_eignvector_uv_mR(
double **Ab,
double **eignV
)
{
double **new_Ab;
int    rsize_Ab = rsize_R(Ab);
int r;
  
      new_Ab = i_AbR_C_AC_mR(Ab[C_SIZE_A][C0],
                             Ab[C_SIZE  ][C0] + C1,
                             Ab[C_SIZE_A][C0]);
                             
      c_nr_mR(Ab,rsize_Ab,new_Ab);        
      zero4_under_all_pivot_mR(new_Ab);   
      put_freevariable_mR(new_Ab,rsize_Ab);

      r=Ab[C_SIZE_A][C0]-C1;
      while( r>R1 )
        zero_below_pivot_gj1Ab_mR(new_Ab,r--);
        
      sort_c_mR(new_Ab);
      sort_r_mR(new_Ab);

      c_Ab_b_mR(new_Ab,eignV);
            
      f_mR(new_Ab);
}
/* ------------------------------------ */
/* ------------------------------------ */
void eigs_V_uv_mR(
double **A,
double **V
)
{
int i;	
int r = rsize_R(A);
	
double **EigsValue = i_mR(r,C1);
double **eignV     = i_mR(r,r);

double **Ab;
double **b         =   m0_mR(i_mR(r,C1));

double **Ide       =  eye_mR(i_mR(r,r));
double **sIde      =         i_mR(r,r);
double **AmnssIde  =         i_mR(r,r);

  eigs_value_uv_mR(A,EigsValue);  
  
  for(i = R1; i <= rsize_R(EigsValue); i++)
  {  
   smul_mR(EigsValue[i][C1],Ide,sIde);
   MmnsD_mR(A,sIde,AmnssIde);
   Ab = c_A_b_Ab_mR(AmnssIde,b,i_Abr_Ac_bc_mR(r,r,C1));
   
   gj_freevariable_eignvector_uv_mR(Ab,eignV);
   
   c_c_mR(eignV,C2,V,i);  
     
  }    
   
  Normalize_uv_mR(V);  

  f_mR(EigsValue);
  f_mR(eignV);
  
  f_mR(Ab);
  f_mR(b);
  
  f_mR(Ide);
  f_mR(sIde);
  f_mR(AmnssIde);
}
/* ------------------------------------ */
/* ------------------------------------ */


Déclaration des fichiers h.