二分法求方程的根c语言程序
时间: 2023-09-22 12:07:49 浏览: 252
C/C++语言的二分法求方程的根
5星 · 资源好评率100%
二分法是一种常用的求解方程根的方法,其基本思路是先确定一个初始区间,然后每次取区间的中点作为候选根,根据函数值与零的比较结果缩小区间范围,直到满足精度要求或者迭代次数达到最大值为止。
下面是一个使用二分法求解方程根的 C 语言程序示例:
```c
#include <stdio.h>
#include <math.h>
double f(double x) {
return x*x - 2; // 待求解的方程 f(x) = x^2 - 2
}
double bisection(double a, double b, double eps) {
int n = ceil(log2((b-a)/eps)); // 确定迭代次数
for (int i = 0; i < n; i++) {
double c = (a + b) / 2; // 取中点
if (f(c) == 0 || (b-a)/2 < eps) {
return c; // 已经找到根或者精度已经满足要求
}
if (f(a)*f(c) < 0) {
b = c; // 根位于左半区间
} else {
a = c; // 根位于右半区间
}
}
return (a + b) / 2; // 返回迭代结束时的中点作为近似根
}
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;
}
```
该程序定义了一个待求解的方程 `f(x) = x^2 - 2`,使用二分法求解其根,其中 `a` 和 `b` 分别是初始区间的左右端点,`eps` 是精度要求,`n` 是迭代次数,`c` 是中点,通过不断缩小区间范围,最终得到近似根 `root`,并输出结果。
阅读全文