gpt4 book ai didi

python - 使用 quad 提高积分精度

转载 作者:行者123 更新时间:2023-12-03 18:52:32 29 4
gpt4 key购买 nike

import math
from scipy.integrate import quad

def integrand(x):
return 1/math.log(x)

for i in range(1,13):
n = 10**i
I = quad(integrand, 1.45137, n)
print('Li(',n,') = ' ,I[0], ' Error bound = ', I[1], sep = "")
在评估 logarithmic integral function上面的代码为 n 返回了足够准确的值高达 1,000,000,则精度会下降。对于我的要求,我希望将误差范围保持在远低于 1即使是更大的争论,也可以说到 10**12 .我试验了 epsabslimit参数,对任何 n 没有任何可见的影响,而且由于这不是函数值低于浮点下限的情况,我认为不值得用多精度恶作剧试试运气。任何提示任何人?

最佳答案

您可以设置容错:

I = quad(integrand, 1.45137, n,epsrel = 1e-012)
输出:
Li(10) = 6.165597450825269   Error bound = 1.3760057428455556e-12
Li(100) = 30.126139530117598 Error bound = 3.845093652017017e-10
Li(1000) = 177.60965593619017 Error bound = 1.0048009489777205e-08
Li(10000) = 1246.1372138454267 Error bound = 2.5251966557222983e-11
Li(100000) = 9629.808998996832 Error bound = 4.4348515334357425e-10
Li(1000000) = 78627.54915740821 Error bound = 8.356797391525394e-09
Li(100000000) = 5762209.375445976 Error bound = 1.7291372054824457e-06
Li(1000000000) = 50849234.956999734 Error bound = 1.7689864637237228e-05
Li(10000000000) = 455055614.58662117 Error bound = 0.00014576268969193965
Li(100000000000) = 4118066400.621609 Error bound = 0.0009848731833003443
Li(1000000000000) = 37607950280.804855 Error bound = 0.01345062255859375

关于python - 使用 quad 提高积分精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66635668/

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