使用牛顿迭代法求根c++
时间: 2023-09-12 19:03:37 浏览: 275
下面是使用牛顿迭代法求根的C++代码示例:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
return x * x - 2; // 求解 f(x) = x^2 - 2 的根
}
double f_derivative(double x) {
return 2 * x; // f(x) 的导数
}
double newton(double x0, double eps) {
double x = x0;
while (abs(f(x)) > eps) { // 当误差小于eps时停止迭代
x = x - f(x) / f_derivative(x); // 根据牛顿迭代公式计算下一个x
}
return x;
}
int main() {
double x0 = 1; // 初始值
double eps = 1e-6; // 精度
double root = newton(x0, eps); // 求解根
cout << "The root of f(x) = x^2 - 2 is " << root << endl;
return 0;
}
```
在上面的代码中,`f(x)`表示要求解的方程,`f_derivative(x)`是方程的导数,`newton(x0, eps)`是牛顿迭代函数,它接受初始值`x0`和精度`eps`作为参数,并返回方程的根。在`newton()`函数中,使用了一个while循环来迭代计算根,直到误差小于给定的精度`eps`。在每次迭代中,根据牛顿迭代公式`x = x - f(x) / f'(x)`计算下一个`x`的值,其中`f'(x)`表示`f(x)`的导数。最后,将求解出的根输出到控制台。
阅读全文