Aller au contenu

Mathc complexes/a58

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
void pE_Octave_mZ(
double  **A,
char name[],
int Pr,
int Pi
)
{
 int r;
 int c;

 printf(" %s=[\n",name);

 for(r=R1; r<A[R_SIZE][C0]; r++)
  {
  for(c=C1; c<A[C_SIZE][C0]; c+=C2)
   
     printf("%+.*e%+.*e*i,",Pr,A[r][c], Pi,A[r][c+C1]);

   if((r+1)<A[R_SIZE][C0]) printf("\b;\n");

   else                    printf("\b]\n\n");
  }
}
/* ------------------------------------ */
/* ------------------------------------ */
Pour que les matrices soient bien adapté au format octave, il vaut mieux que tous les nombres soit collés les un aux autres. On pourrait remplacer la virgule entre les nombres par un espace.

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

c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */

/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = rE_mZ(i_mZ(R3,C3), 999999, 1E-3 );

  clrscrn();
  printf(" Copy/Paste into the octave window.\n\n");
  pE_Octave_mZ(A,"A",P3 ,P3);
  printf(" det(A)\n\n\n");

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

  srand(time(&t));

do
{
  fun(rp_I(R3)+R2);
} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
 Copy/Paste into the octave window.       

 A=[
-1.356e+01-3.453e+02*i,-9.853e+01-5.566e+02*i,+4.234e+02-4.143e+02*i;
+1.738e+02-8.004e+02*i,-4.987e+02+3.933e+02*i,-8.280e+01+8.722e+02*i;
+9.436e+02+2.865e+02*i,+9.259e+02-3.863e+02*i,-1.488e+02-5.319e+02*i]

 det(A)



 Press   return to continue
 Press X return to stop