Aller au contenu

Mathc initiation/Fichiers c : c22cf

Un livre de Wikilivres.


Sommaire


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

c3f.c
/* --------------------------------- */
/* save as c3f.c                     */
/* --------------------------------- */
#include "x_hfile.h"
#include      "ff.h"
/* --------------------------------- */
int main(void)
{
   int                  n = 6;
double FirstApproximation = -0.8;

 clrscrn();
 
  printf(" The Newton's method :     \n"
        "                     f(x_n) \n"  
        "     x_n+1 = x_n  - ------- \n"
        "                    f'(x_n) \n"
        "\n\n\n\n\n");
    
 printf(" Use Newton's method to approximate \n" 
        " the intersection point of :\n\n" 
        " g : x-> %s              and\n"
        " h : x-> %s\n\n\n" 
        " On a graph, you can see that, the intersection \n" 
        " point is between -1.0 and 0.0.\n\n" 
        " Choose x = %.1f as a first approximation.\n\n"
          , geq, heq, FirstApproximation);
 stop();

 clrscrn();
 printf(" In fact we want find x**2 = cos(x) or x**2 - cos(x) = 0\n\n" 
        " We want find the root of\n\n" 
        " f : x-> %s\n\n", feq);
 
 printf(" As a first approximation x = %.1f \n\n",FirstApproximation);
 printf(" The Newton's method give :                \n\n");
 p_Newton_s_Method(FirstApproximation, n, f, Df);


 Newton_s_Method(FirstApproximation, n, f, Df);
                        
 printf(" f(%.15f) = %.15f\n\n",  
              Newton_s_Method(FirstApproximation, n, f, Df)
           ,f(Newton_s_Method(FirstApproximation, n, f, Df)));

 stop();

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


Fichier de commande gnuplot :
# ---------------------
# Copy and past this file into the screen of gnuplot
#
#
set zeroaxis lt 3 lw 1
plot [-3.:3.] [-1.5:1.5]\
                 cos(x),\
                  x**2
reset
# ---------------------


Nous pouvons observer que le point d'intersection est entre 0 et -1. Il faut calculer la racine de cette équation x**2 - cos(x) = 0. On va donc choisir comme première approximation -0.8. On arrêtera les calculs lorsque l'on aura deux valeurs identiques.



Exemple de sortie écran :

 The Newton's method :     
                     f(x_n) 
     x_n+1 = x_n  - ------- 
                    f'(x_n) 





 Use Newton's method to approximate 
 the intersection point of :

 g : x-> x**2              and
 h : x-> cos(x)


 On a graph, you can see that, the intersection 
 point is between -1.0 and 0.0.

 Choose x = -0.8 as a first approximation.

 Press return to continue. 


*************************

 In fact we want find x**2 = cos(x) or x**2 - cos(x) = 0

 We want find the root of

 f : x-> x**2- cos(x)

 As a first approximation x = -0.8 

 The Newton's method give :                

 x[1] = -0.800000000000000
 x[2] = -0.824470434030341
 x[3] = -0.824132376563292
 x[4] = -0.824132312302525
 x[5] = -0.824132312302522
 x[6] = -0.824132312302522


 f(-0.824132312302522) = -0.000000000000000

 Press return to continue.