首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求取值低于镜像下限

请求取值低于镜像下限
EN

Stack Overflow用户
提问于 2019-10-27 17:34:47
回答 1查看 120关注 0票数 0

我正在尝试在Python中计算Gibbs切片采样器中函数的逆:

代码语言:javascript
复制
from pynverse import inversefunc
import numpy as np
import random

def zdens(z):
    return -(z+0.5)**5+3*(z+0.5)**2+z+0.5

myfunc = (lambda z: -(z+0.5)**5+3*(z+0.5)**2+z+0.5)

Nreal,Ngal,currentz=2000,400,0.8
zsamp=np.zeros((Nreal,Ngal))

for m in range(Nreal):
    for k in range(Ngal):
        proposedz=np.random.uniform(0,zdens(currentz))
        zsamp[m][k]=np.random.uniform(inversefunc(myfunc,y_values=proposedz,domain=[0,0.613244]),inversefunc(myfunc, y_values=proposedz,domain=[0.613244,2]))
        zsamp[m][k]=currentz

您可以找到函数attached的图。问题来自于域的争论。使用的函数应该是严格单调的,否则(就像我的例子一样),应该提供它所在的域。当我不使用domain参数时,我不会得到任何错误消息,而当我如上所示使用它时,我会得到:

代码语言:javascript
复制
ValueError                                Traceback (most recent call last) <ipython-input-    39-60eac97f0d9a> in <module>
     17     for k in range(Ngal):
     18         proposedz=np.random.uniform(0,zdens(currentz))
---> 19         zsamp[m][k]=np.random.uniform(inversefunc(myfunc,y_values=proposedz,domain=.[0,0.613244]),inversefunc(myfunc, y_values=proposedz,domain=[0.613244,2]))
     20         zsamp[m][k]=currentz

/usr/local/lib/python3.7/site-packages/pynverse/inverse.py in inversefunc(func, y_values,domain, image, open_domain, args, accuracy)
     201         return inv
     202     else:
 --> 203         return inv(y_values)
     204 
     205 

/usr/local/lib/python3.7/site-packages/pynverse/inverse.py in inv(yin)
     149                 raise ValueError("Requested values %s lower than the"
     150                                  " lower limit %g of the image" %
 --> 151                                  (yin[mask], ymin))
     152         if ymax is not None:
     153             if (xmax_open and trend == 1) or (xmin_open and trend == -1):

ValueError: Requested values [0.81974978] lower than the lower limit 1.21875 of the image

下面是这个函数的文档,我觉得在这方面没有什么帮助:https://pypi.org/project/pynverse/

EN

回答 1

Stack Overflow用户

发布于 2019-10-28 20:04:22

在运行上面的脚本和一个函数时,我发现这个错误消息意味着我一直试图计算的倒数低于倒数的最小值。换句话说,我请求的值超出了反函数的范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58578158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档