gpt4 book ai didi

python - 在 Python 中计算 Dirichlet 积分

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:17 29 4
gpt4 key购买 nike

我正在尝试计算积分

sin(x)/x , x = [0,inf]

我做了以下事情:

import math
from scipy.integrate import quad

t = float("inf")
def integrand(x):
return (math.sin(x))/x
ans, err = quad(integrand, 0, t)

print(ans)

但是我得到了错误的答案:应该是 Pi/2,Python 的答案是 2.247。

你知道可能是什么问题吗?

最佳答案

您正在计算一个困难的积分——狄利克雷积分甚至没有定义,除非您使用非常具体的积分定义。 https://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html您正在使用的函数 -- quad 用于通用集成。考虑到它使用的是近似算法。

你看警告了吗?我的输出显示:

/Users/jdong/venv2/lib/python2.7/site-packages/scipy/integrate/quadpack.py:364: IntegrationWarning: The integral is probably divergent, or slowly convergent.
warnings.warn(msg, IntegrationWarning)

... 我的错误是 3.2903230524472544。所以从技术上讲,PI/2 在误差范围内。

此外,您正在计算无穷大,而这并不是真正必要的。 sinc 函数倾向于适度快速地归零,因此您可以简单地执行 quad(integrand,0,100) 并获得不错的结果。请注意,当您增加限制时,您将需要增加四边形使用的分割数。例如quad(被积函数,0,100000,limit=10000)

关于python - 在 Python 中计算 Dirichlet 积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46509934/

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