【问题标题】:Newton's Method in C++C++中的牛顿法
【发布时间】:2018-07-30 06:47:32
【问题描述】:

我正在尝试在 c++ 源代码中翻译 f(x) = x − e-(x2) 但我不断收到错误。我试过了:

double f(double x)
{
    exp = pow(-x, 2);
    double result = x - exp;
    return x;

};

有什么见解吗? 如果有帮助,我正在使用 Code::Blocks

【问题讨论】:

  • 当你说e^(-x2)时,你的意思是e^(-x*2)还是e^((-x)^2)?
  • 您可能想要重命名您的 exp 变量,std::exp
  • 我的意思是 e^((-x)^2)
  • 我对此表示怀疑。 (-x)^2 == x^2。当然你的意思是 -(x^2)
  • 这不是牛顿法。使用牛顿法,您可以在当前 x 处进行线性估计,然后尝试预期根值 x_next = x - f(x)/(derivative_of_f(x))。

标签: c++ newtons-method cmath


【解决方案1】:
#include <math.h>
double f(double x)
{
    return x - exp(-(x*x));
}

【讨论】:

  • @abelenky:他可能先复制了 OP 的代码。但是 - 你可以修复它。这就是我刚刚所做的。
  • 感谢绿色邮票。我正在为那个烤箱存钱。
猜你喜欢
  • 1970-01-01
  • 2013-10-24
  • 2019-06-19
  • 2015-01-06
  • 2013-10-17
  • 2017-05-05
  • 1970-01-01
  • 2018-02-26
相关资源
最近更新 更多