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