我得到“ -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/

10-11 16:11