我得到" -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)都是有理数,并且总和似乎趋同。
你们可以帮忙吗?
答案 0 :(得分:2)
当n == 0
2.0/(pi*n)
这是一个“除以零”错误。
在后续迭代中,计算是好的,但总和flux2
已被第一个flux1
的错误值破坏,并且永远不会恢复。