e^-x 麦克劳林级数展开
e^-x MacLaurin Series Expansion
我正在尝试为 e-x = 1 - x + (x2 / 2!) 计算麦克劳林级数! (x3 / 3!) +...
我的价值观似乎达到了某个点,然后就完全偏离了。是四舍五入有问题还是我使用了错误类型的变量来回答这样的问题?
int i;
double sum=0;
double x = 8.3;
for(i=0; i<26; i++)
{
sum = sum+ (((pow(-1,i)) * (pow(x,i)))/factorial(i));
printf("Sum = %.12f\n\n\n",sum);
}
return 0;
我不明白为什么,但是直到第 12 项,值都是正确的,但在那之后,它开始完全不同。
据推测,您未显示的 factorial
函数正在执行整数运算。 12点后!你将溢出一个 32 位整数。在 factorial
函数中也切换到使用 double
。
我正在尝试为 e-x = 1 - x + (x2 / 2!) 计算麦克劳林级数! (x3 / 3!) +...
我的价值观似乎达到了某个点,然后就完全偏离了。是四舍五入有问题还是我使用了错误类型的变量来回答这样的问题?
int i;
double sum=0;
double x = 8.3;
for(i=0; i<26; i++)
{
sum = sum+ (((pow(-1,i)) * (pow(x,i)))/factorial(i));
printf("Sum = %.12f\n\n\n",sum);
}
return 0;
我不明白为什么,但是直到第 12 项,值都是正确的,但在那之后,它开始完全不同。
据推测,您未显示的 factorial
函数正在执行整数运算。 12点后!你将溢出一个 32 位整数。在 factorial
函数中也切换到使用 double
。