-1.#IND00 результат из суммы рядов Фурье

Я получаю "-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) получается как рациональное число, а сумма, кажется, сходится.

Ребята, вы можете помочь?

1 ответ

Это вычисление является ошибочным на первой итерации, когда n == 0

2.0/(pi*n)

Это ошибка "делить на ноль".

На последующих итерациях вычисления хороши, но сумма flux2 уже был испорчен плохой ценностью первого flux1 и никогда не восстанавливается.

Другие вопросы по тегам