Aller au contenu

Mathc complexes/a74

Un livre de Wikilivres.

Application

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

c01d.c
/* ------------------------------------ */
/*  Save as :   c01d.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r, int c)
{	
double **Ab    = r_mZ(i_Abr_Ac_bc_mZ(r,c,C1),99.);
double **A     = i_mZ(r,c);        
double **subA  = i_mZ(r,r);
                        
  clrscrn();
  printf(" Ab :");
  p_mZ(Ab,S5,P0,S4,P0,C6);
  
  printf(" A    : i_mZ(R,C);");
  p_mZ(c_Ab_A_mZ(Ab,A),S5,P0,S4,P0,C6);
  
  printf(" subA : i_mZ(R,R); \t\t c_Ab_subArxr_mZ(Ab,subA); ");
  p_mZ(c_Ab_subArxr_mZ(Ab,subA),S5,P0,S4,P0,C6);

  f_mZ(A);    
  f_mZ(Ab);
  f_mZ(subA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

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


} while(stop_w());

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


Copier la sous-matrice de Ab dans subA :
// 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 les matrices Ab, A, b.
Cette méthode permet par exemple de faire croire à la fonction det_mR(); que la matrice est carrée. On peut calculer le déterminant de cette sous-matrice. Si il n'est pas nul, le système Ab peut être résolu avec l'algorithme du Total Pivoting.


Exemple de sortie écran :

 -------------------------------- 
 Ab :
  -43 -88i   +30 -60i   +26 +75i   -97 -66i   +52 -47i   +64 +29i 
  +86 -23i   +69 +93i   +92 -78i   -57 -87i   +65 +59i   -58 +70i 
  -88 +26i   -36 -60i   -81 +13i   -91 -60i   +84 -99i   -72 +21i 
  -47 -96i    -3 +15i   -81 -39i   +88 +35i   +80 -16i   -50 +51i 

 A    : i_mZ(R,C);
  -43 -88i   +30 -60i   +26 +75i   -97 -66i   +52 -47i 
  +86 -23i   +69 +93i   +92 -78i   -57 -87i   +65 +59i 
  -88 +26i   -36 -60i   -81 +13i   -91 -60i   +84 -99i 
  -47 -96i    -3 +15i   -81 -39i   +88 +35i   +80 -16i 

 subA : i_mZ(R,R); 		 c_Ab_subArxr_mZ(Ab,subA); 
  -43 -88i   +30 -60i   +26 +75i   -97 -66i 
  +86 -23i   +69 +93i   +92 -78i   -57 -87i 
  -88 +26i   -36 -60i   -81 +13i   -91 -60i 
  -47 -96i    -3 +15i   -81 -39i   +88 +35i 


 Press return to continue
 Press X      to stop