Mathc complexes/a190

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   RA R3
#define   CA C3
#define   Cb C3
/* ------------------------------------ */
int main(void)
{
double a[RA*(CA*C2)] =    { 1,2,  3,4,  5,6,
                            5,4,  1,3,  6,8,
                            7,2,  5,1,  1,1};

double b0[RA*(Cb*C2)] ={ 1,4, 5,4, 3,1, 
                         2,5, 3,5, 2,3,  
                         3,6, 2,6, 2,4 }; 
                         
double **A = ca_A_mZ(a, i_mZ(RA,CA));                        
double **b = ca_A_mZ(b0,i_mZ(RA,Cb));   

double **X =      i_mZ(RA,Cb);
double **T =      i_mZ(RA,Cb);

double **Ab = i_Abr_Ac_bc_mZ(RA,CA,Cb);

  c_A_b_Ab_mZ(A,b,Ab);

  clrscrn();
  printf("                                                 \n");
  printf(" Linear systems with common coefficient matrix.\n\n");
  printf("                Ax1=b1                           \n");
  printf("                Ax2=b2                           \n");
  printf("                ...                              \n");
  printf("                Axn=bn                         \n\n");
  printf(" We can write these equalities in this maner.  \n\n");
  printf("    A|x1|x2|...|xn| = b1|b2|...|bn|            \n\n");
  printf("  or simply :                                  \n\n");
  printf("              AX = b                           \n\n");
  printf("  where b = b1|b2|...|bn                       \n\n");
  printf("  and   X = x1|x2|...|xn                       \n\n");
  stop();

  clrscrn();
  printf(" We want to find X such as,   \n\n");
  printf("         AX = b               \n\n");
  printf(" We can use the function,       \n");
  printf("   gaussjordan : gj_mZ(Ab);   \n\n");
  printf(" To verify the result you can   \n");
  printf(" multiply the matrix A by X.    \n");
  printf(" You must refind b.         \n\n\n");
  stop();

  clrscrn();
  printf(" A :\n");
  p_mZ(A, S5,P0, S4,P0, C6);
  printf(" b1      b2      ...      bn :\n");
  p_mZ(b, S5,P0, S4,P0, C6);
  stop();

  clrscrn();
  printf(" gj1_mZ(Ab) :");
  gj_mZ(Ab);
  p_mZ(Ab, S8,P4, S8,P4, C3);
  stop();

  clrscrn();
  printf(" gj1_mZ(Ab) :");
  p_mZ(Ab, S10,P3, S4,P3, C4);
  printf(" X  :");
  p_mZ(c_Ab_b_mZ(Ab,X), S10,P3, S4,P3, C4);
  stop();

  clrscrn();
  clrscrn();
  printf("    b1        b2        ...       bn :");
  p_mZ(b, S5,P0, S3,P0, C6);
  printf("    Ax1       Ax2       ...       Axn :");
  p_mZ(mul_mZ(A,X,T), S5,P0, S3,P0, C6);

  f_mZ(Ab);
  f_mZ(T);
  f_mZ(X);
  f_mZ(b);
  f_mZ(A);

  stop();

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



Exemple de sortie écran :
 ------------------------------------                                        
 Linear systems with common coefficient matrix.

                Ax1=b1                           
                Ax2=b2                           
                ...                              
                Axn=bn                         

 We can write these equalities in this maner.  

    A|x1|x2|...|xn| = b1|b2|...|bn|            

  or simply :                                  

              AX = b                           

  where b = b1|b2|...|bn                       

  and   X = x1|x2|...|xn                       

 Press return to continue. 


 ------------------------------------ 
 We want to find X such as,   

         AX = b               

 We can use the function,       
   gaussjordan : gj_mZ(Ab);   

 To verify the result you can   
 multiply the matrix A by X.    
 You must refind b.         


 Press return to continue. 

 ------------------------------------ 
 A :

   +1  +2i    +3  +4i    +5  +6i 
   +5  +4i    +1  +3i    +6  +8i 
   +7  +2i    +5  +1i    +1  +1i 

 b1      b2      ...      bn :

   +1  +4i    +5  +4i    +3  +1i 
   +2  +5i    +3  +5i    +2  +3i 
   +3  +6i    +2  +6i    +2  +4i 

 Press return to continue. 


 ------------------------------------ 
 gj1_mZ(Ab) :
 +1.0000 +0.0000i  +0.0000 -0.0000i  +0.0000 +0.0000i 
 +0.0000 +0.0000i  +1.0000 +0.0000i  +0.0000 +0.0000i 
 +0.0000 +0.0000i  +0.0000 +0.0000i  +1.0000 +0.0000i 

 +0.3085 +0.3691i  -0.2077 +0.6268i  +0.0742 +0.5774i 
 +0.3263 +0.4945i  +0.8123 +0.2695i  +0.4261 -0.0711i 
 +0.2212 -0.2204i  +0.3918 -0.5240i  +0.0867 -0.3474i 

 Press return to continue. 

 ------------------------------------ 
 gj1_mZ(Ab) :
    +1.000+0.000i     +0.000-0.000i     +0.000+0.000i     +0.309+0.369i 
    +0.000+0.000i     +1.000+0.000i     +0.000+0.000i     +0.326+0.495i 
    +0.000+0.000i     +0.000+0.000i     +1.000+0.000i     +0.221-0.220i 

    -0.208+0.627i     +0.074+0.577i 
    +0.812+0.270i     +0.426-0.071i 
    +0.392-0.524i     +0.087-0.347i 

 X  :
    +0.309+0.369i     -0.208+0.627i     +0.074+0.577i 
    +0.326+0.495i     +0.812+0.270i     +0.426-0.071i 
    +0.221-0.220i     +0.392-0.524i     +0.087-0.347i 

 Press return to continue. 


 ------------------------------------ 
    b1        b2        ...       bn :
   +1 +4i    +5 +4i    +3 +1i 
   +2 +5i    +3 +5i    +2 +3i 
   +3 +6i    +2 +6i    +2 +4i 

    Ax1       Ax2       ...       Axn :
   +1 +4i    +5 +4i    +3 +1i 
   +2 +5i    +3 +5i    +2 +3i 
   +3 +6i    +2 +6i    +2 +4i 

 Press return to continue.