用二分法求下面方程在(-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
,输出根。