如何解决在 mpmath 中集成函数
对数积分函数 def Li(x)
得到的结果让我感到困惑。好的,由于 log 1 = 0
,在 +1 处有一个奇点,所以我希望为任何 x 定义区间 [0,x]
会导致问题,并得出结论我应该从下限 1.451369 开始......,所谓的Soldner's Constant
,奇点左右区域相互抵消的点,我们得到了上限 x 的正确积分。事实证明,间隔 [0,2]
会引发错误,但通常可以接受 [0,x]
,但 Li(x)
和 [0,x]
的 [1.451369,x]
不同。为什么?看看 Li(3)
的计算值是什么???
from mpmath import mp
mp.dps = 10
def Li(x):
return 1/mp.log(x)
soldnerConstant = mp.mpf(1.451369)
x = 2
##I = mp.quad(Li,[0,x])
##print('Li(',x,') = ',I,sep = "")
I = mp.quad(Li,[soldnerConstant,x])
print('Li(',sep = "")
x = 3
I = mp.quad(Li,sep = "")
x = 1000000
I = mp.quad(Li,sep = "")
Type "help","copyright","credits" or "license()" for more information.
>>>
======= RESTART: C:/Python/_StackOverflow/Python_StackOverflow #002_01.py ======
Li(2) = 1.045164411
Li(3) = 119.0703323
Li(3) = 2.163589225
Li(1000000) = 78601.94956
Li(1000000) = 78627.54916
>>>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。