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]
)
你好,我想知道能给我一个特定数值积分的 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]
)