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