牛顿C++法
Newton's Method on C++
好吧,我正试图将我的牛顿放入这个C++中,这是我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x1, x0;
int n,i;
cin >> x0, n;
for(i = 1; i <= n; i++)
{
x1 = x0 - ((4.0*pow(x0,3.0)-2.0*pow(x0,2.0)+3.0)/(12.0*pow(x0,2.0)-4.0*x0)); #problem
x0 = x1;
}
cout << x1;
return 0;
}
好吧,也许我的代码没有很好地描述给你,但问题是#问题部分,当我把它放在迭代方法上时,它编译得很好,没有给出错误,但当我运行时,它需要很长时间,并且只是冻结x0,n的输入(见迭代前的代码),即使我插入n=1,但删除迭代,它运行得很好,并给出预期的答案(在这种情况下,我不能进行迭代,类似于n=1)。这是什么原因?因为我想做4次迭代。
cin >> x0, n;
它只读取x0
,留下包含垃圾值的n
。要读取两者,您需要
cin >> x0 >> n;
请记住启用编译器警告:大多数编译器都会检测到这样的错误。