Aller au contenu

Mathc complexes/Fichiers c : conj

Un livre de Wikilivres.


Application

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

conj.c
/* ------------------------------------ */
/*  Save as :  conj.c                   */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **xconj_mZ(
double **A,
double **cA
)
{
nb_Z z;
int r;
int c;

  dif_sizes_mZ(A,cA,"conj_mZ();","(A or cA)");

  for (   r=R1; r<A[R_SIZE][C0]; r++)
    for ( c=C1; c<A[C_SIZE][C0]; c+=C2)
         {
          z = i_Z(A[r][c   ],       /* Create the number z        */
                  A[r][c+C1]);

            z = conj_Z(z);          /* Compute the conjugate of z */

            cA[r][c   ] = z.r;      /* Save the result into cA    */
            cA[r][c+C1] = z.i;
         }
         
return(cA);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r,int c)
{
double **A   =    r_mZ(   i_mZ(r,c),9);
double **cA  = conj_mZ(A, i_mZ(r,c));

  clrscrn();
  printf(" A \n");
  p_mZ(A, S5,P0, S4,P0,C6);

  printf("\n conj(A)  \n");
  p_mZ(cA, S5,P0, S4,P0,C6);

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

  srand(time(&t));
  
  do 
         fun(rp_I(R6),rp_I(C6));
        
    while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction conj_mZ() donne la matrice conjuguée. Il faut d'abord transformer les coefficients de la matrice en nombres complexes avec la fonction i_Z(); Ensuite avec la fonction conj_Z(); travaille sur chaque nombre complexes pour donner la matrice complexe conjuguée.

Exemple de sortie écran :

   A 

   -9  -7i 
   -1  -9i 
   +8  +8i 
   +4  +6i 
   +4  +2i 
   -5  -5i 


 conj(A)  

   -9  +7i 
   -1  +9i 
   +8  -8i 
   +4  -6i 
   +4  -2i 
   -5  +5i 


 Press return to continue
 Press X      to stop