Aller au contenu

Mathc complexes/a161

Un livre de Wikilivres.


Application


Installer et compiler ces fichiers dans votre répertoire de travail.


c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */  
#define RAb          R4  
#define CA           R4
#define Cb           R2
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double ab[RAb*((CA+Cb)*C2)] ={   
  +1,+8,   +2,-7,   +1,+1,   -9,-6,   -8,-4,   -6,-5, 
  +1,+8,   +2,-7,   +1,+1,   -9,-6,   -4,+1,   -1,+9, 
  -7,+4,   +1,+3,   +5,-6,   -2,+5,   +6,+6,   -4,-9, 
  -8,+2,   -5,-7,   -7,+8,   -1,+5,   +7,-3,   -7,+3 };
                          
double **Ab = ca_A_mZ(ab,i_Abr_Ac_bc_mZ(RAb,CA,Cb));
double **Ab_free =       i_Abr_Ac_bc_mZ(RAb,CA,Cb) ;
double **b_free  =       i_mZ(RAb,C2);

int c = TheCorrect_C(CA+C1);

nb_Z B;

  clrscrn();
  printf(" Ab :");
  p_mZ(Ab, S8,P2, S6,P2, CA); 
  stop();

  clrscrn();   
  printf("    zx   zx   zx   zx*B   zx   \n"
         "    zx   zx   zx   zx*B   zx   \n" 
         "     0    0    0   z1*B   z2 \n\n" 
         "       z1*B  + z2 != 0       \n\n"       
 
         " The system is not compatible :");  
  p_mZ(gj_PP_mZ(Ab), S9,P4, S8,P4, CA); 
  stop();

  clrscrn();  
  B =  div_Z(sym_Z(i_Z(-5,-14)), i_Z(-4,-5));

  printf(
  "    zx   zx   zx   zx*B   zx   \n"
  "    zx   zx   zx   zx*B   zx   \n" 
  "     0    0    0   z1*B   z2   \n" 
  "       z1*B  + z2 != 0         \n"       
  " The system is not compatible :\n\n" 
    
  "    zx   zx   zx   zx*B   zx   \n"
  "    zx   zx   zx   zx*B   zx   \n" 
  "     0    0    0   z1    -z1   \n"   
  
  " With  B = -z2/z1 = "); p_Z(B,S3,P4,S3,P4); printf("\n");
  
  mulC_mZ(Ab,B,c);

  printf(" The system is compatible :\n");  
  p_mZ(Ab, S9,P4, S8,P4, CA);
  
  stop();
  
  f_mZ(Ab);
  f_mZ(Ab_free);
  f_mZ(b_free);
}
/* ------------------------------------ */
int main(void)
{

  fun();

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


 Calculer la valeur de B pour que le système soit compatible.


Exemple de sortie écran :
 ------------------------------------ 
 Ab :
   +1.00 +8.00i    +2.00 -7.00i    +1.00 +1.00i    -9.00 -6.00i 
   +1.00 +8.00i    +2.00 -7.00i    +1.00 +1.00i    -9.00 -6.00i 
   -7.00 +4.00i    +1.00 +3.00i    +5.00 -6.00i    -2.00 +5.00i 
   -8.00 +2.00i    -5.00 -7.00i    -7.00 +8.00i    -1.00 +5.00i 

   -8.00 -4.00i    -6.00 -5.00i 
   -4.00 +1.00i    -1.00 +9.00i 
   +6.00 +6.00i    -4.00 -9.00i 
   +7.00 -3.00i    -7.00 +3.00i 

 Press return to continue. 


 ------------------------------------ 
    zx   zx   zx   zx*B   zx   
    zx   zx   zx   zx*B   zx   
     0    0    0   z1*B   z2 

       z1*B  + z2 != 0       

 The system is not compatible :
  +1.0000 +0.0000i   +0.3824 +0.9706i   +1.0588 -0.7353i   +0.2647 -0.5588i 
  +0.0000 +0.0000i   +1.0000 +0.0000i   +0.0884 -0.6139i   -0.2170 -1.0607i 
  +0.0000 +0.0000i   +0.0000 +0.0000i   +1.0000 +0.0000i   -1.0194 -0.4975i 
  +0.0000 +0.0000i   +0.0000 +0.0000i   +0.0000 +0.0000i   -0.0000 +0.0000i 

  -0.9118 +0.1471i   +0.9118 -0.1471i 
  -0.5141 +0.2640i   -0.2357 -0.0795i 
  -0.8586 +0.8258i   +0.9520 -0.0550i 
  -4.0000 -5.0000i   -5.0000-14.0000i 

 Press return to continue. 


 ------------------------------------ 
    zx   zx   zx   zx*B   zx   
    zx   zx   zx   zx*B   zx   
     0    0    0   z1*B   z2   
       z1*B  + z2 != 0         
 The system is not compatible :

    zx   zx   zx   zx*B   zx   
    zx   zx   zx   zx*B   zx   
     0    0    0   z1    -z1   
 With  B = -z2/z1 = -2.1951-0.7561i 
 The system is compatible :

  +1.0000 +0.0000i   +0.3824 +0.9706i   +1.0588 -0.7353i   +0.2647 -0.5588i 
  +0.0000 +0.0000i   +1.0000 +0.0000i   +0.0884 -0.6139i   -0.2170 -1.0607i 
  +0.0000 +0.0000i   +0.0000 +0.0000i   +1.0000 +0.0000i   -1.0194 -0.4975i 
  +0.0000 +0.0000i   +0.0000 +0.0000i   +0.0000 +0.0000i   -0.0000 +0.0000i 

  +2.1126 +0.3666i   +0.9118 -0.1471i 
  +1.3281 -0.1908i   -0.2357 -0.0795i 
  +2.5092 -1.1636i   +0.9520 -0.0550i 
  +5.0000+14.0000i   -5.0000-14.0000i 

 Press return to continue.