用二分法求下面方程在(-10,10)的根。 2x^3-4x^2+3x-6=0
这个程序使用二分法求方程 2x^3 - 4x^2 + 3x - 6 = 0
在区间 (-10, 10) 内的根。
#include <stdio.h>
#include <math.h>
// 方程 f(x)
double f(double x) {
return 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
}
int main() {
double a = -10, b = 10, epsilon = 1e-5, c;
while (fabs(b - a) > epsilon) {
c = (a + b) / 2.0;
if (f(c) == 0) {
break;
} else if (f(a) * f(c) < 0) {
b = c;
} else {
a = c;
}
}
printf("方程的根: %.5f\n", c);
return 0;
}
代码说明:
- 初始区间为 (-10, 10)。
- 每次取中点
c
,判断f(c)
是否为 0 或者f(a)
与f(c)
是否异号,更新区间。 - 循环直到区间长度小于
epsilon
,输出根。