c - C 中的 Arctan Taylor 级数

标签 c

我需要对反正切值执行泰勒级数 50 次。表示 arctan Taylor 级数的域之间的 50 个数字,即 [-1,1]。我已经用手动用户输入对其进行了测试并且它工作正常,但是我在代码中递增 0.01 的 50 个不同输入的 for 循环及其相应的结果一直不成功。到目前为止,我已经尝试了所有我能想到的,我没有想法。任何帮助,将不胜感激。泰勒级数周围的括号是否与另一个 for 循环冲突?我怀疑这是括号,但当我试图修复它时没有任何效果。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

main (void) {
    double n;
    double x;
    double tSeries=0.0;
    double t2;
    double t1;

    for(n=0;n<=50;++n) {
        for(x=-1;x<=1;x=x+0.01) {

            t1=(pow(x,2*n+1))*pow(-1,n);
            t2=t1/(2*n+1);
            tSeries+=t2;

            printf("arctan(%lf)=%lf\n",x,tSeries);
        }
    }
    return 0;
}

最佳答案

在您发布的代码中,内层循环针对变量 x,外层循环针对 n 的幂。

我认为您想对每个 x 值求和 n 的值,因此对 n 的循环应该是内部循环。

我认为您还需要将 x 的每个值的总和 tSeries 归零。

最后,我希望你想在计算总和后打印答案,所以 printf 应该在 n 循环之外。

计算幂级数有一些技巧。我喜欢这种东西的数字食谱。尝试第 5 章关于函数的评估。 (C 中的数值食谱,Press 等,第 2 版,1992 年,CUP。)

要立即注意的一件事是,在幂级数的上限固定的情况下,您正在计算多项式。我的 NR 副本的第 5.3 节强烈建议不要使用对 pow() 的调用总和。他们对此非常坚定!

如果您想让我发布正确的代码,请告诉我。

关于c - C 中的 Arctan Taylor 级数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40077693/

相关文章:

c - C中的无限循环

c - Slab缓存分配没有预定义函数的结构堆栈

c++ - 我可以从 Visual Studio 即时窗口调用 Win32 API 吗?

c++ - C 中棘手的符号

c - 以毫秒和微秒精度测量 POSIX 中耗时的最佳方法是什么?

c - 结构复制的效率

c - 为什么 ANSI 在第一次调用函数时打印代码并在第二次调用时打印颜色?

c - 为什么 strtok_r 总是找到模式 "."?

使用 memcpy 复制二维数组

c++ - typeid(equalizing) 中类型定义及其含义的区别