Aller au contenu

Mathc complexes/h09b

Un livre de Wikilivres.


Application

Le code de la fonction :

/* ------------------------------------ */
/* ------------------------------------ */
void p_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("%+.*f%+.*f*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 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),9);

  clrscrn();
  printf(" octave give a bad result.                 \n");
  printf(" If you paste this type of numbers +1 -2*i  \n");
  printf(" instead of this type (see space)  +1-2*i\n\n");
  printf(" Copy/Paste into the octave window.       \n\n");
  p_Octave_mZ(A,"A",P0 ,P0);
  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 :

 octave give a bad result.                 
 If you paste this type of numbers +1 -2*i  
 instead of this type (see space)  +1-2*i


 Copy/Paste into the octave window.  


 A=[
-4-9*i,+6+8*i,-5+1*i,+5+1*i,+3-7*i;
-8+2*i,-4+6*i,-7+6*i,-7-7*i,-2+3*i;
+2-6*i,+3-7*i,+5+3*i,-2+3*i,+3-7*i;
+2-8*i,+5-6*i,-7+8*i,+9-5*i,-5+2*i;
-5+8*i,+8+8*i,+4+7*i,-4+2*i,+7-3*i]

 det(A)



 Press return to continue
 Press X      to stop