Mathc complexes/a90

Un livre de Wikilivres.

Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A  = r_mZ(i_mZ(r,r),999.);
double **b  = i_mZ(r,r);
double **Ab = i_Abr_Ac_bc_mZ(   r,  r,  r);
/*            i_Abr_Ac_bc_mZ(R_Ab,C_A,C_b));  */
double **invA = i_mZ(r,r);

  clrscrn();
  printf(" A :");
  p_mZ(A, S6,P0, S5,P0, C4);

  printf("   b : ID :");
  eye_mZ(b);
  p_mZ(b, S6,P0, S5,P0, C4);
  stop();
  
  clrscrn();  
  printf(" Ab :");
  c_A_b_Ab_mZ(A,b,Ab);
  p_mZ(Ab, S6,P0, S5,P0, C4);
  printf("  gj_TP_mZ(Ab) :");  
  gj_mZ(Ab);
  p_mZ(Ab, S8,P4, S8,P4, C4);
  stop();
  
  clrscrn(); 
  printf(" Copy/Past into the octave window.\n");
  p_Octave_mZ(A,"A",P0,P0);
  printf("format short e\n");
  printf(" inv(A)\n\n");

  printf(" invA :                      c_Inv_A_mZ(Ab,invA);");  
  c_Inv_A_mZ(Ab,invA);
  pE_mZ(invA, S10,P4, S10,P4, C3);
  
  f_mZ(invA);
  f_mZ(Ab);
  f_mZ(b);
  f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(R4);


} while(stop_w());

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


Copier la matrice inverse du système Ab dans la matrice invA :


Exemple de sortie écran :

 ----------------------------------
 A :
  +697 -663i   +385 -746i   -213 +968i   -885 +608i 
  -229 -266i    +22  +94i    +29 -785i   -934 -227i 
  +384 -871i   +637 +784i   -816 -798i   +475 -300i 
  +244 +745i   -650 -171i   -880  -23i    -58 +164i 

   b : ID :
    +1   +0i     +0   +0i     +0   +0i     +0   +0i 
    +0   +0i     +1   +0i     +0   +0i     +0   +0i 
    +0   +0i     +0   +0i     +1   +0i     +0   +0i 
    +0   +0i     +0   +0i     +0   +0i     +1   +0i 

 Press return to continue. 


 ----------------------------------
 Ab :
  +697 -663i   +385 -746i   -213 +968i   -885 +608i 
  -229 -266i    +22  +94i    +29 -785i   -934 -227i 
  +384 -871i   +637 +784i   -816 -798i   +475 -300i 
  +244 +745i   -650 -171i   -880  -23i    -58 +164i 

    +1   +0i     +0   +0i     +0   +0i     +0   +0i 
    +0   +0i     +1   +0i     +0   +0i     +0   +0i 
    +0   +0i     +0   +0i     +1   +0i     +0   +0i 
    +0   +0i     +0   +0i     +0   +0i     +1   +0i 

  gj_TP_mZ(Ab) :
 +1.0000 +0.0000i  +0.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  -0.0000 -0.0000i  +1.0000 -0.0000i  +0.0000 +0.0000i 
 +0.0000 -0.0000i  -0.0000 +0.0000i  +0.0000 +0.0000i  +1.0000 +0.0000i 

 +0.0005 +0.0002i  -0.0003 +0.0004i  +0.0002 +0.0004i  +0.0002 +0.0002i 
 +0.0001 +0.0005i  -0.0005 -0.0004i  -0.0000 +0.0001i  -0.0009 +0.0004i 
 -0.0000 +0.0001i  -0.0001 +0.0001i  -0.0003 +0.0003i  -0.0006 +0.0001i 
 -0.0001 -0.0001i  -0.0007 +0.0002i  +0.0003 +0.0000i  +0.0001 +0.0003i 

 Press return to continue. 


 ----------------------------------
 Copy/Past into the octave window.
 A=[
+697-663*i,+385-746*i,-213+968*i,-885+608*i;
-229-266*i,+22+94*i,+29-785*i,-934-227*i;
+384-871*i,+637+784*i,-816-798*i,+475-300*i;
+244+745*i,-650-171*i,-880-23*i,-58+164*i]

format short e
 inv(A)

 invA :                      c_Inv_A_mZ(Ab,invA);
+4.7003e-04+2.1135e-04i -2.9930e-04+3.5515e-04i +1.9455e-04+4.3014e-04i 
+1.1285e-04+5.0449e-04i -5.2150e-04-4.0555e-04i -3.6558e-06+9.2722e-05i 
-7.9562e-07+5.4058e-05i -5.6900e-05+9.7203e-05i -3.0870e-04+2.7735e-04i 
-9.1274e-05-1.3791e-04i -7.4673e-04+1.6845e-04i +2.9780e-04+3.6630e-05i 

+1.7466e-04+1.6472e-04i 
-8.6345e-04+3.9377e-04i 
-5.7102e-04+7.7681e-05i 
+6.4338e-05+2.9895e-04i 


 Press return to continue
 Press X      to stop