Aller au contenu

Mathc complexes/a182

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **c_c_D_mZ(
double **U,
double **D
)
{
int  r;
int  c;

  for (   r=R1; r<D[R_SIZE][C0]; r++)
    for ( c=C1; c<D[C_SIZE][C0]; c+=C2)

        if(((r-R1)*C2)==c-C1)
          {           
               D[r][c   ] = U[r][C1];
               D[r][c+C1] = U[r][C2];
          }
              
 return(D);
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier un vecteur colonne dans une matrice diagonale

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

c00e.c
/* ------------------------------------ */
/*  Save as :   c00e.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int rc)
{
double **U =     r_mZ(   i_mZ(rc,C1),99);
double **D = c_c_D_mZ(U, i_mZ(rc,rc));

  clrscrn();

  printf(" U :");
  p_mZ(U,S5,P0, S3,P0,C6);
  printf(" D : c_c_D_mZ(D,U);");
  p_mZ(D, S5,P0, S3,P0,C6);  
     
  f_mZ(U);
  f_mZ(D);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
  do
        fun(RC5);

  while(stop_w());       

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 U :
  +19-84i 
  +14+86i 
  +32+53i 
  -77-67i 
  +99+78i 

 D : c_c_D_mZ(D,U);
  +19-84i    +0 +0i    +0 +0i    +0 +0i    +0 +0i 
   +0 +0i   +14+86i    +0 +0i    +0 +0i    +0 +0i 
   +0 +0i    +0 +0i   +32+53i    +0 +0i    +0 +0i 
   +0 +0i    +0 +0i    +0 +0i   -77-67i    +0 +0i 
   +0 +0i    +0 +0i    +0 +0i    +0 +0i   +99+78i 


 Press   return to continue
 Press X return to stop