Mathc initiation/a510

Un livre de Wikilivres.


Sommaire


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


c00c.c
/* --------------------------------- */
/* save as c00c.c                    */
/* --------------------------------- */
#include "x_afile.h"
#include      "fc.h"
/* --------------------------------- */
int main(void)
{
pt2d     Q = i_pt2d(0.,0.);

 clrscrn();
 
 printf(
        "              |f_xx f_xy|  \n"
        "          H = |f_yx f_yy|\n\n"
        " Verify the sign of the Hessian matrix for Q(%0.2f,%0.2f)\n\n\n",
          Q.x,Q.y);
 printf(" f   : x,y-> %s\n\n\n",   feq  );
 printf(" Hessian(%0.2f,%0.2f) = %0.9f    \n\n",Q.x,Q.y, Hessian(f,f_xy,Q) );
 
 stop();
 
 return 0;
}
/* --------------------------------- */
/* --------------------------------- */


Remarque :  La bibliothèque possède les fonctions f_xx et f_yy, mais elle ne possède pas les fonctions f_xy et f_yx. f_xy et f_yx sont égales. Il faut donc les introduire dans le fichier f.h de manière symbolique pour que la fonction Hessian(f,f_xy,Q) puisse y faire appel.


Par exemple :
/* --------------------------------- */
double f(
double x,
double y)
{
 return(     (x*x*x + 3*x*y - y*y*y) );
}
/* --------------------------------- */
char  feq[] = "x**3 + 3*x*y - y**3";
/* --------------------------------- */
double f_xy(
double x,
double y)
{
 return(        ( 3 )  );
}
/* --------------------------------- */
char feq_xy[] = "3";
/* --------------------------------- */
/* --------------------------------- */


Exemple de sortie écran :

              |f_xx f_xy|  
          H = |f_yx f_yy|

 Verify the sign of the Hessian matrix for Q(0.00,0.00)


 f   : x,y-> x**3 + 3*x*y - y**3


 Hessian(0.00,0.00) = -9.000000000    

 Press return to continue.