用c++编写一个用二分法求解发f(x)=0的根
时间: 2023-09-29 10:08:01 浏览: 118
二分法求根算法C++.doc
以下是使用二分法求解f(x)=0的根的C++代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
// 定义f(x)函数
return x * x - 2;
}
double bisection(double a, double b, double eps) {
// 使用二分法求解f(x)=0的根
double c = (a + b) / 2;
while (abs(b - a) > eps) {
if (f(c) == 0) {
return c;
} else if (f(c) * f(a) < 0) {
b = c;
} else {
a = c;
}
c = (a + b) / 2;
}
return c;
}
int main() {
double a, b, eps;
cout << "请输入区间[a, b]和误差范围eps的值:" << endl;
cin >> a >> b >> eps;
double root = bisection(a, b, eps);
cout << "方程f(x)=0的根为:" << root << endl;
return 0;
}
```
在上述代码中,我们定义了一个 `f(x)` 函数,其中的 `x * x - 2` 就是我们要求解的方程 `f(x) = x^2 - 2 = 0`。接着,我们使用了 `bisection()` 函数来实现二分法求解根的过程。该函数的输入参数包括区间左端点 `a`,右端点 `b`,以及误差范围 `eps`。在函数中,我们首先利用二分法求出中点 `c`,然后根据 `f(c)` 和 `f(a)` 的符号关系来缩小区间,最终得到方程的根。最后,我们通过 `main()` 函数来读入用户输入的区间和误差范围,然后调用 `bisection()` 函数来求解方程的根,并输出结果。
阅读全文