-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
и никогда не восстанавливается.