011:编写函数,它的功能是:使用牛顿迭代法求一元二次方程2x2+3x-5=0的一个实根,并返回该实根。在main函数中验证。要求:初始值、误差在main函数中由键盘输入。
时间: 2024-03-17 09:47:19 浏览: 15
以下是使用牛顿迭代法求解一元二次方程2x^2+3x-5=0的程序:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double f(double x) {
return 2 * x * x + 3 * x - 5;
}
double f1(double x) {
return 4 * x + 3;
}
double newton(double x0, double eps) {
double x = x0;
double delta = f(x) / f1(x);
while (fabs(delta) > eps) {
x -= delta;
delta = f(x) / f1(x);
}
return x;
}
int main() {
double x0, eps, x;
cout << "请输入初始值x0和误差eps:" << endl;
cin >> x0 >> eps;
x = newton(x0, eps);
cout << "方程2x^2+3x-5=0的一个实根为:" << x << endl;
return 0;
}
```
在程序中,f(x)表示方程2x^2+3x-5的值,f1(x)表示f(x)的导数的值,newton函数中的while循环使用牛顿迭代公式x -= f(x) / f1(x)来不断逼近方程的实根。程序中通过键盘输入初始值和误差,并输出方程的一个实根。