Aller au contenu

Mathc complexes/09j

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **ca_A_mRZ(
double  a[],
double  **A
)
{
int r;
int c;
int i=0;

 	for    (r=R1; r<A[R_SIZE][C0]; r++)
 	   for (c=C1; c<A[C_SIZE][C0]; c++,c++)
           {
             A[r][c]    = a[i++];
             A[r][c+C1] = 0.;             
		   }

return(A);
}       
/* ------------------------------------ */
/* ------------------------------------ */
La fonction ca_A_mRZ(); permet de copier un tableau de réelles dans une matrice avec des valeurs complexes. La valeur imaginaire est mis à zéro, pour éventuellement effacer des valeurs précédentes.

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

c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include      "w_a.h"
/* ------------------------------------ */
int main(void)
{
double a[R2*C3] ={  1,  2,   3,
                   10, 20,  30 };
                     
double **A = ca_A_mRZ(a,i_mZ(R2,C3));

  printf(" ca_A_mRZ();\n\n"
         " Copying an array of real numbers into"
         " a complex-valued matrix.\n\n"
         " A:  p_mRZ(); ");
  p_mRZ(A,S4,P0,     C6);
  
  printf(" A:  p_mZ();");
  p_mZ(A,S4,P0,S3,P0,C6);
  stop();
  
  f_mZ(A);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 ca_A_mRZ();

 Copying an array of real numbers into a complex-valued matrix.

 A:  p_mRZ(); 
  +1   +2   +3 
 +10  +20  +30 

 A:  p_mZ();
  +1 +0i   +2 +0i   +3 +0i 
 +10 +0i  +20 +0i  +30 +0i 

 Press return to continue.