Aller au contenu

Mathc complexes/a73

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
double **c_Ab_A_mZ(
double **Ab,
double **A
)
{
int r;
int c;

 	for    (r=R1; r<Ab[R_SIZE][C0];   r++)
 	   for (c=C1; c<Ab[C_SIZE_A][C0]; c++)

            A[r][c] = Ab[r][c];
            
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier A de Ab dans A. Le coefficient Ab[C_SIZE_A][C0] dans Ab donne le nombre de colonne de A. Il est mémorisé dans dans la deuxième ligne (C_SIZE_A = R2) et la colonne zéro (C0).
 //La matrice Ab doit être initialiser avec la fonction :
 
 double **Ab = i_Abr_Ac_bc_mZ( RAb, CA, Cb); 
 
 // Cette fonction installe la bonne taille pour la matrices Ab.
 
 double **i_Abr_Ac_bc_mZ(
 int     Ab_r,                  // nombre de lignes   de Ab
 int      A_c,                  // nombre de colonnes de A
 int      b_c                   // nombre de colonnes de b
 )

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

c00b.c
* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r, int Ac, int bc)
{
double **Ab = r_mZ( i_Abr_Ac_bc_mZ(r,Ac,bc),99.);        	
double **A  =       i_mZ(r,Ac) ;

  c_Ab_A_mZ(Ab, A);
                        
  clrscrn();
  printf(" Ab :                            Ab[R%d][C%d]   \n",
                            rsize_Z(Ab), 
                            csize_Z(Ab));
  p_mZ(Ab, S5,P0, S4,P0, C6);
  
  printf(" A : c_Ab_A_mZ(Ab,A);             A[R%d][C%d] \n",
                            rsize_Z(Ab), 
                            csize_A_Z(Ab));
  p_mZ(A, S5,P0, S4,P0, C6);
        
  f_mZ(Ab);
  f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(R3)+R1, rp_I(C2)+C1, rp_I(C2)+C1);

} while(stop_w());

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

Exemple de sortie écran :

 Ab :                            Ab[R3][C5]   

  -95 -32i   -41 +73i   +80 +35i   -53 +87i   +84 -35i 
  -79 +82i   +59 +59i   +97 -15i   -56 -58i   +91 +43i 
  -68 -50i   -54 +63i   +80 -63i   -87 +55i   +91  +2i 

 A : c_Ab_A_mZ(Ab,A);             A[R3][C3] 

  -95 -32i   -41 +73i   +80 +35i 
  -79 +82i   +59 +59i   +97 -15i 
  -68 -50i   -54 +63i   +80 -63i 


 Press   return to continue
 Press X return to stop