Aller au contenu

Mathc complexes/Fichiers c : pow r

Un livre de Wikilivres.


Application

Installer et compiler ce fichier dans votre répertoire de travail.

pow.c
/* ------------------------------------ */
/*  Save as :   pow.c                   */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **xpow_mZ(
int      n,
double **A,
double **A_n
)
{
double **T;
int      i;

  isquare_mZ(A,      "pow_mZ();","(A)");
  dif_sizes_mZ(A,A_n,"pow_mZ();","(A or A_n)");

  T = i_RC_mZ(A[R_SIZE][C0],A[C_SIZE][C0]);

 c_mZ(A,A_n);

 if(!n) eye_mZ(A_n);
 else    for(i=n-1; i; i--)
            {
             mul_mZ(A_n,A,T);
             c_mZ(T,A_n);
            }
  f_mZ(T);
  
  return(A_n);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int rc)
{
int    n;
double **A   = r_mZ(i_mZ(rc,rc),9);
double **A_n =      i_mZ(rc,rc);

  for(n=0; n<6; n++)
      {
       clrscrn();
       
       printf(" A : ");
       p_mZ(A, S5,P0, S4,P0, C4);
       
       printf(" A^%d :",n);
       p_mZ(pow_mZ(n,A,A_n), S10,P0, S8,P0, C4);
       stop();
       }

  f_mZ(A);
  f_mZ(A_n);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do{ 
        fun(rp_I(R2)+R2);
        clrscrn();
        
     }while(stop_w());
        
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Je me contente de multiplier les matrices entre elles. La puissance zéro donne la matrice identité.

Exemple de sortie écran :

   A : 
   -5  +6i    -1  +8i 
   -9  +4i    -7  -7i 

 A^0 :
        +1      +0i         +0      +0i 
        +0      +0i         +1      +0i 

 Press return to continue. 


A : 
   -5  +6i    -1  +8i 
   -9  +4i    -7  -7i 

 A^1 :
        -5      +6i         -1      +8i 
        -9      +4i         -7      -7i 

 Press return to continue. 


A : 
   -5  +6i    -1  +8i 
   -9  +4i    -7  -7i 

 A^2 :
       -34    -136i        +20     -95i 
      +112     -39i        -23     +22i 

 Press return to continue. 



 A : 
   -5  +6i    -1  +8i 
   -9  +4i    -7  -7i 

 A^4 :
    -18805   -2172i     -11970   +3135i 
    -10830  -10545i      -1420  -12432i 

 Press return to continue.