问题描述
对数积分函数 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 (将#修改为@)