Data_Structure/作業/unit1/binary-search-solves-equation/test.c
2025-01-20 21:30:53 +08:00

35 lines
774 B
C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define f(x) ((x) + sin(x) - 1)
int main() {
int count = 1000, i = 0;
double precision = 1e-15;
double epsilon = 1e-15;
double mid, lower = 0, upper = 2;
while ((upper - lower > precision) && (i < count)) {
mid = (lower + upper) / 2.0;
double f_mid = f(mid);
printf("#%d\t[%.15f,%.15f]\t¸Ñ=%.15f\tf(mid)=%.15e\n", i+1, lower, upper, mid, f_mid);
if (fabs(f_mid) < epsilon) {
break;
}
i++;
if (f_mid * f(lower) < 0) {
upper = mid;
} else {
lower = mid;
}
}
printf("µª®×¬°%.15f\n", mid);
printf("f(mid) = %.15e\n", f(mid));
return 0;
}