本文主要是介绍C++实现牛顿迭代法求解f(x)=0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
#include <cmath>
using namespace std;
#define f(x) x*x - 8
#define df(x) 2*x
double EPS = 1e-6;
double Newton(double xFirst)
{
double xSecond;
int iteCount = 0;//迭代次数
do
{
if (iteCount)
xFirst = xSecond;
xSecond = xFirst -((f( xFirst)) / (df(xFirst)));
iteCount++;
} while (abs(xSecond-xFirst)>EPS);
cout << " 运算迭代次数: " << iteCount << endl;
return xSecond;
}
void main()
{
double x;
double accX;
cout << " Input xFirst: ";
cin >> x;
accX = Newton(x);
cout << " 达到计算精度使f(x)=0的解为: " << accX;
cout << endl;
}
这篇关于C++实现牛顿迭代法求解f(x)=0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!