Aller au contenu

Mathc initiation/Fichiers h : x 18c01c

Un livre de Wikilivres.


Sommaire



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

c01c.c
/* ---------------------------------- */
/* save as c01c.c                     */
/* ---------------------------------- */
#include "x_a.h"
/* ---------------------------------- */
# define   DEGREE     6
# define   COEFF_NB   DEGREE + 1
/* ---------------------------------- */
int main(void)
{
double k =     1;
double remainder;

double *Pa  = I_Px( COEFF_NB);
double *Pt  = I_Px( COEFF_NB);
double *Pqr = I_Px( COEFF_NB);
double *Pq  = I_Px((COEFF_NB-1));

double a[COEFF_NB]={5,3,-2,6,5,-2,-9};

 clrscrn();
 
 c_a_Px(a,Pa);
 printf("\n If P(x) is : \n\n ");
 p_Px(Pa);printf(" = 0\n\n");

 printf(" If we divide P(x) by : [x-(%+.0f)] \n\n",k);
 remainder = compute_horner(k,Pa,Pt,Pqr,Pq);
 p_horner(Pa,Pt,Pqr);printf("\n");

 printf(" The synthetic division indicates that the result is :\n\n S = [");
 p_Px(Pq);printf("] %+.0f/[x-(%+.0f)]\n\n\n", remainder,k); 

 printf(" The synthetic division indicates that P(%+.0f) = %+.0f\n\n\n",
        k, remainder);
        
 stop();
 
 free(Pa);
 free(Pt);
 free(Pqr);
 free(Pq);

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


Vérifier les calculs à la main. (Voir le premier exemple pour apprendre la méthode de Horner)


Exemple de sortie écran :

 If P(x) is : 

 +5x**6 +3x**5 -2x**4 +6x**3 +5x**2 -2x -9 = 0

 If we divide P(x) by : [x-(+1)] 

      +5      +3      -2      +6      +5      -2      -9   
      +0      +5      +8      +6     +12     +17     +15   
   --------------------------------------------------------
      +5      +8      +6     +12     +17     +15      +6   


 The synthetic division indicates that the result is :

 S = [+5x**5 +8x**4 +6x**3 +12x**2 +17x +15] +6/[x-(+1)]


 The synthetic division indicates that P(+1) = +6


 Press return to continue.


Fichier de commande gnuplot :
# ---------------------
# Copy and past this file into the screen of gnuplot
#
#
set zeroaxis lt 3 lw 1
plot [-2.:1.5] [-10.:10.]\
      +5.00*x**6  +3.00*x**5  -2.00*x**4  +6.00*x**3  +5.00*x**2  -2.00*x  -9.00
reset
# ---------------------