[英]Is it possible to multiply lambda functions in python for scipy.integrate?
[英]python scipy.integrate inverse ppf
您好,我想知道能給我一個特定數值積分的 x 值是多少。
到目前為止,我正在使用 scipy.integrate 並且工作正常,但是給定一個整數值是否有辦法知道給出該結果的 x 是多少?
假設我有一個 function f(x) = |2-x| 1<=x<=3
我想知道給我 0.25(第一個四分位數)的 x 值是多少。
正態分布的 scipy.stats 中的內容是 norm.ppf(),在這種特殊情況下,我將它用於 PDF(概率密度函數),但它可以是任何積分。
感謝致敬
我使用二進制搜索以 對數時間(非常快)找到答案。 您也可以在此處在線運行下面的代碼。
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]
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.