/* Program pro minimalizaci funkce jedne promenne v danem intervalu [a,b]. Vola proceduru e04abf z NAF Fortran Library. Minimalizovana funkce ma nasledujici specifikaci: */ extern double f(double x); #include #include #include "nagopt.h" static void funct(double *xc, double *fc); main() { double e1=0.0, e2=0.0, a, b, x, fx; long int maxc=30, ifail; printf("Zadejte interval pro minimalizaci: "); scanf("%lf%lf", &a, &b); e04abf_(funct, &e1, &e2, &a, &b, &maxc, &x, &fx, &ifail); printf("\n"); printf("Reseni je v intervalu [%lf,%lf].\nOdhad reseni je %lf.\n",a,b,x); printf("Funkcni hodnota v minimu je %lf.\n", fx); } void funct (double *xc, double *fc) { *fc = f(*xc); }