#include "f.hh"; #include #include #include using namespace std; inline double signof(double a) { return (a == 0) ? 0 : (a<0 ? -1 : 1); } void bisezione(double x0, double x1, double e, double zero[], int MaxSteps) { double x, y0,yy; double n=0; while (fabs(x1-x0)>e){ // controllo sulla precisione richiesta y0=f(x0); x= x0 + (x1-x0)/2; // calcolo del valore medio x yy=f(x); n++; // contatore del numero di passi if (n >= MaxSteps) { cout << "Attenzione: troppi passi nel metodo della bisezione" << endl; break; } if (signof(yy*y0) == 0 ) break; if (signof(yy)*signof(y0)<0) x1=x; else x0=x; // cout<< "x0= "<< setprecision(6)<< x0 << setprecision(6)<<" x1= " << x1 << " Npass = "<