python scipy.integrate 逆 ppf

python scipy.integrate inverse ppf

你好,我想知道能给我一个特定数值积分的 x 值是多少。

到目前为止,我正在使用 scipy.integrate 并且工作正常,但是给定一个整数值有没有办法知道给出该结果的 x 是多少?

假设我有一个函数 f(x) = |2-x| 1<=x<=3

我想知道给我 0.25(第一个四分位数)的 x 值是多少。

scipy.stats 中的正态分布是 norm.ppf(),在这种特殊情况下,我将它用于 PDF(概率密度函数),但它可以是任何积分。

感谢和问候

我用binary search to find answer in logarithmic time (very fast). You can also run code below online here.

import math, scipy.integrate, scipy.optimize

def f(x):
    return math.sin(x)

a, b = 0, 10
integral_value = 0.5

res_x = scipy.optimize.bisect(
    lambda x: scipy.integrate.quad(f, a, x)[0] - integral_value,
    a, b
)
print(
    'found point x', res_x, ', integral value at this point',
    scipy.integrate.quad(f, a, res_x)[0]
)