怎样用二分法求解方程的根
时间: 2023-12-27 08:04:28 浏览: 25
二分法是一种常用的数值计算方法,可以用来求解方程的根。具体步骤如下:
1. 确定方程的解空间。例如,如果要求解 f(x)=0 在 [a,b] 区间内的根,那么解空间就是 [a,b]。
2. 选取解空间的中点 c=(a+b)/2。
3. 计算 f(c) 的值。
4. 如果 f(c) 的值为 0,那么 c 就是方程的一个根,直接返回 c。
5. 如果 f(c) 的值与 f(a) 的值符号相同,那么根一定在 [c,b] 区间内,将 a 的值更新为 c。
6. 如果 f(c) 的值与 f(b) 的值符号相同,那么根一定在 [a,c] 区间内,将 b 的值更新为 c。
7. 重复步骤 2-6,直到满足精度要求或者迭代次数达到预设值。
下面是一个使用二分法求解方程根的示例代码:
```
#include <stdio.h>
#include <math.h>
double f(double x) {
return x*x - 2; // 求解 x^2 = 2 的根
}
double bisection(double a, double b, double eps) {
double c;
int n = 0;
while (fabs(b-a) > eps && n < 100) { // 精度要求 eps,最大迭代次数 100
c = (a+b)/2;
if (f(c) == 0) {
return c;
} else if (f(c)*f(a) < 0) {
b = c;
} else {
a = c;
}
n++;
}
return c;
}
int main() {
double a = 0, b = 2, eps = 1e-6;
double root = bisection(a, b, eps);
printf("The root of the equation is: %lf\n", root);
return 0;
}
```