gpt4 book ai didi

c - 高斯积分和二分法

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:33 24 4
gpt4 key购买 nike

为了好玩,我尝试使用级数展开计算从 0 到 1 的高斯积分。出于这个原因,我写了一个阶乘函数,它在 20 以内运行良好!(我检查过)然后我写了这个:

int main(){
int n;
long double result=0;
for(n=0; n<=5; n++){
if(n%2==0){
result+=(((long double) 1/(long double)(factorial(n)*(2*n+1))));
} else {
result-=(((long double) 1/(long double)(factorial(n)*(2*n+1))));
}
}
printf("The Gaussian integral from 0 to 1 is %Lf\n", result);
}

这给了我一个奇怪的负数,显然还差得远。我怀疑问题出在 Actor 身上,但我不知道是什么。有什么想法吗?这不是我尝试的第一件事。我尝试转换表达式中的任何内容并将显式转换放在开头,但它没有用。

最佳答案

您正在使用 MinGW 编译器(适用于 Windows 的 gcc 端口),它在 long double 类型方面存在问题。这是由于 GCC 的 long double 实现与 Microsoft 的 C 库之间存在冲突。另见 this question .

根据 this question ,定义 __USE_MINGW_ANSI_STDIO 可能会解决这个问题。如果不是,则使用 double 将起作用。

关于c - 高斯积分和二分法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com