c++ - 二进制表达式 ('double(*)(double' 和 'double' 的无效操作数)

标签 c++ numerical newtons-method

我试图找出牛顿法来求方程的根。这个错误出来了,我无法处理。

double fn(double n){
    return sin(n)+log(n)-1;
}

double f1n(double n){
    return cos(n)+1/n;
}

double operation(double n){
    n=n-fn/f1n;

    while(fn>0.000001){
        n=n-fn/f1n;
    }

    return n;
}

最佳答案

您忘记将 n 传递给您的函数。

double operation(double n)
{
    n = n - fn(n) / f1n(n);
    while(fn(n) > 0.000001)
    {
        n = n - fn(n) / f1n(n);
    }
    return n;
}

关于c++ - 二进制表达式 ('double(*)(double' 和 'double' 的无效操作数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845404/

相关文章:

c++ - 在 C++ 中读取、操作和写入 SQLServer DateTimeOffset 字段

c++ - 引用相对于其目标的生命周期

c++ - 重方法调用 block cout

c++ - 线段相交,数值稳定测试

c# - 为什么这些除法方程的结果为零?

ruby - XIRR 实现的 bigdecimal/newton 错误

c++ - Boost weak_ptr在多线程程序中实现资源池

julia - 在 Julia 中实现多元牛顿法

java - 牛顿拉夫森法 Java

高效计算逻辑图的算法