2

您好,我想给我一个特定的数字积分的 x 值是多少。

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

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

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

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

谢谢并恭祝安康

4

1 回答 1

1

我使用二进制搜索在对数时间内找到答案(非常快)。您也可以在此处在线运行以下代码

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]
)
于 2020-09-20T05:22:06.977 回答