写C++风格的程序,用二分法求解f(x)=0的根。
时间: 2023-09-29 07:08:29 浏览: 108
用C++程序编写二分法
这里是一份使用C语言风格的程序,用二分法求解f(x)=0的根:
```c
#include <stdio.h>
#include <math.h>
double f(double x) {
// 定义目标函数
return x * x - 2;
}
double bisection(double a, double b, double eps) {
// 定义二分法求根函数
double c;
while ((b - a) >= eps) {
c = (a + b) / 2; // 取中点
if (f(c) == 0.0) { // 如果找到了根
return c;
} else if (f(c) * f(a) < 0) { // 如果根在[a, c]之间
b = c;
} else { // 如果根在[c, b]之间
a = c;
}
}
return (a + b) / 2; // 返回最终的中点
}
int main() {
double a, b, eps, root;
printf("请输入二分法求根的起点a和终点b:\n");
scanf("%lf%lf", &a, &b);
printf("请输入二分法求根的精度eps:\n");
scanf("%lf", &eps);
root = bisection(a, b, eps);
printf("f(x) = 0的根为%.6lf\n", root);
return 0;
}
```
程序首先定义了目标函数f(x),然后实现了二分法求根函数bisection。该函数通过不断取区间的中点来逼近根,直到满足给定的精度eps为止。
接下来在主函数中读入起点a、终点b和精度eps,然后调用bisection函数求解f(x)=0的根,并输出结果。
注意,在实际使用中可能需要对目标函数f(x)进行修改。另外,由于二分法只能求解单根,因此需要注意给定区间[a, b]中是否只有一个根。
阅读全文