#include "algoritmi.h" double FindZero (double lowerlimit, double upperlimit, double precision, double (*function)(double)) { /* * Definite questa funzione in modo che restituisca l'ascissa di uno zero o * DBL_MAX se lo zero non viene trovato. * Al momento viene fornito un algoritmo finto, permette di compilare * e girare il programma. */ if ( (*function)(lowerlimit)*(*function)(upperlimit)<=0.) return (lowerlimit+upperlimit)/2.; // stima dello 0 else return DBL_MAX; } double FindMaximum(double lowerlimit, double upperlimit, double precision, double (*function)(double)) { /* * Definite questa funzione in modo che restituisca l'ascissa del massimo o * DBL_MAX se il massimo non viene trovato. * Al momento viene fornito un algoritmo finto, permette di compilare * e girare il programma. */ double a=lowerlimit, b=(lowerlimit+upperlimit)/2., c=upperlimit; double fa = (*function)(a); double fb = (*function)(b); double fc = (*function)(c); if ( fb>fa && fb>fc ) return b; else return DBL_MAX; } double FindMinimum(double lowerlimit, double upperlimit, double precision, double (*function)(double)) { /* * Definite questa funzione in modo che restituisca l'ascissa del minimo o * DBL_MAX se il minimo non viene trovato. * Al momento viene fornito un algoritmo finto, permette di compilare * e girare il programma. */ double a=lowerlimit, b=(lowerlimit+upperlimit)/2., c=upperlimit; double fa = (*function)(a); double fb = (*function)(b); double fc = (*function)(c); if ( fb