#include #include #include double f1( double t) { double v; v = sin(t); return(v); } /**/ /* This function attempts to find a zero of a function */ /* using the bisection method */ int bisect( double (*f)(double), // external function whose zero we seek double *minval, // minimum of search range double *maxval, // maximum of search range double epsilon) // tolerance { double f0; // value at intvl start double f1; // value at intvl end double ft; // test value; double midval; // point where secant has 0 value int count = 0; ------------------------ /* printf("bsrch val = %8.5lf %8.5lf %5d \n", *minval, f0, count); */ return(count); } int main() { int code; double min; double max; min = 0.5; max = 2.0; code = bisect(f1, &min, &max, 1.0e-10); printf("code = %5d min = %16.6le f(min) = %16.6le \n", code, min, f1(min)); min = -1.5; max = 2.0; code = bisect(f1, &min, &max, 1.0e-10); printf("code = %5d min = %16.6le f(min) = %16.6le \n", code, min, f1(min)); min = 0.5; max = 5.0; code = bisect(f1, &min, &max, 1.0e-10); printf("code = %5d min = %16.6le f(min) = %16.6le \n", code, min, f1(min)); }