如何解决评估多元均匀分布的 PDF
我想计算一个点相对于 [-1,1] x [-1,1] 上的均匀分布的密度。我试过这个:
update()
但这会返回一个二维向量而不是标量值。
我能想到的就是
import numpy as np
from scipy.stats import uniform
x = np.zeros(2)
uniform(loc=np.array([-1,-1]),scale=np.array([2,2])).pdf(x)
如果能更快地得到一些东西就好了。就通用功能而言,这是我能做的最好的了。
0.25 * np.all(np.abs(x) <= 2)
解决方法
如果你寻找简单的东西,也许你可以试试这个。您需要微调代码以满足您的需求。
def multivariate_uniform(x,a,b,c,d):
"""
(a,d) -------- (b,d)
| |
| |
| |
(a,c) -------- (b,c)
"""
y = np.array([a,c])
z = np.array([b,d])
if (x >= y).all() and (x <= z).all():
return 1/(b-a)/(d-c)
else:
return 0
x1 = np.array([0,0])
print(multivariate_uniform(x1,-1,1,1))
x2 = np.array([2,0])
print(multivariate_uniform(x2,1))
x3 = np.array([0,2])
print(multivariate_uniform(x3,1))
x4 = np.array([-2,2])
print(multivariate_uniform(x4,1))
x5 = np.array([-1,1])
print(multivariate_uniform(x5,1))
0.25
0
0
0
0.25
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。