c++ - 在 C++ 中使用泰勒级数求数字的自然对数

标签 c++ algorithm taylor-series

The specific question

好吧,我花了过去 2 个小时来处理这个问题,调整了代码一百次,但我什么也没得到。没有错误,也没有警告,但答案是错误的。这是我的代码:

#include <iostream>
using namespace std;

void main()
{
    /***********Variable Declarations************/

    double count = 1, totalValue = 0, it, x, z=1, powe = 1, y;

    cout << "Iterations=";
    cin >> it;
    cout << "x=";
    cin >> x;
    /***************End User Input***************/

    while (count <= it)
    {
        for (int i = 0; i < powe; i++) {
            z *= (x - 1) / (x + 1);
        }
        y = (1 / powe)*z;

        totalValue = totalValue + y;
        powe = powe + 2;
        count++;
    }

    cout << "The Result is:" << 2*totalValue << endl;
}

我知道这是一个逻辑(数学)问题,但我似乎找不到它。谢谢。

编辑:我们不允许使用任何其他库。

最佳答案

你的方法效率低下,实现也是错误的。

这是错误的,因为计算2N次方的内部循环已损坏。您需要每次在内循环之前将 z 重置为 1。

但不要这样做,你根本不需要内部循环。

为了计算该系列的第 N 个成员,您不需要从一开始就计算同一旧数字的 2N 次方。您刚刚在上一步中计算了该数字的 2N-2 次方。使用它。

关于c++ - 在 C++ 中使用泰勒级数求数字的自然对数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46879166/

相关文章:

c++ - 使用分而治之的最大子数组和

algorithm - 如何在 Rust 中迭代序列的所有唯一排列?

assembly - MIPS 组装中的泰勒级数

c++ - 使用泰勒级数 C++ 计算 Pi

python - 类型映射资源以及将列表转换为 vector (以及反之)

c++ - 0xccccc 处的访问读取冲突

python-3.x - 将列表从另一个类传递给类内的方法,以便修改所述列表并传回 Python 中的原始类

python - 从 Sympy 中的级数展开中获取 n 阶系数

c++ - 如何创建用于 std::chrono 函数的自定义时钟?

c++ - g++ : constructor or operator = not matching? 错误“没有匹配的调用函数”