c - -1.#IND00 傅里叶级数和的结果

标签 c

我得到“-1.#IND00”作为该傅立叶级数的解。

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

int main()
{
    int n, x=50, L=100, q1=2;
    float pi = 3.141592;
    float flux1=0;
    double flux2=0;

        for(n=0;n<=50;n++)
        {
            flux1=q1*(2/(pi*n))*(cos(n*pi)-1)*(sin((n*pi*(x+L))/(2*L)));
            flux2+=flux1;
        }
        flux2+=q1;
        printf("%f\n", flux2);

    return 0;
}

flux2 的结果是“-1.#IND00”,我不明白为什么,因为总和中的每一项 (flux1) 都以有理数的形式出现,并且总和似乎收敛了。

你们能帮忙吗?

最佳答案

n == 0时,此计算在第一次迭代时出错

2.0/(pi*n)

这是一个“除以零”错误。

在后续迭代中,计算效果良好,但总和 flux2 已被第一个 flux1 的错误值破坏,并且永远不会恢复。

关于c - -1.#IND00 傅里叶级数和的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056982/

相关文章:

c - 模拟 ls | 的 C 程序中的管道损坏 |排序 | wc -l

c - 读取文本文件并对两个数组进行排序

c - 卵石上的 snprintf 错误

c - 在链表 C 中查找最高销量

c - 需要帮助了解 STM32 防火墙的 "Call Gate"序列

c - 将字符数组传递给指针并连接字符串

c - C中struct的双指针是什么意思

c - 外部数组用法导致访问冲突

c - 在 for 循环之后没有 {} 大括号 for (i=0; s[i]> ='0' && s[i] <= '9' ;++i)

c - C中的基本流处理