C语言二分法求函数f(x)=x2-1的根
时间: 2024-11-27 21:10:56 浏览: 11
C语言二分法求解方程根的两种方法
5星 · 资源好评率100%
在C语言中,可以使用二分查找(也称作二分法)来近似找到函数f(x) = x^2 - 1(即x² - 1)的零点,因为这样的方程有一个根在0到1之间。由于这个过程通常用于数值计算,并非C语言标准库的一部分,所以需要编写自定义函数来实现。
以下是一个简单的示例,展示了如何使用二分法的基本思想:
```c
#include <stdio.h>
// 二分查找函数,假设已知根在[start, end]区间内
double binary_search(double (*func)(double), double start, double end) {
if (start > end)
return -1; // 如果区间为空,返回错误
double mid = (start + end) / 2;
double test_value = func(mid);
// 如果test_value接近于0,我们找到了根
if (fabs(test_value) < 1e-6) return mid;
// 否则,如果func(mid) * func(end) < 0,说明根在mid和end之间,继续搜索
else if (test_value * func(end) < 0) return binary_search(func, mid, end);
// 否则,根在start和mid之间
else return binary_search(func, start, mid);
}
// f(x) = x^2 - 1 的函数实现
double f(double x) {
return x * x - 1;
}
int main() {
double root = binary_search(f, 0, 1); // 搜索区间初始设定为[0, 1]
printf("Root of f(x) = x^2 - 1 is approximately %.9lf\n", root);
return 0;
}
```
阅读全文