-1。#IND00来自傅立叶级数和

时间:2015-10-10 17:36:27

标签: 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出现为&#34; -1。#IND00&#34;我无法弄清楚为什么,因为总和中的每个项(flux1)都是有理数,并且总和似乎趋同。

你们可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

n == 0

时,此计算在第一次迭代时出错
2.0/(pi*n)

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

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