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