0
我正在使用scipy优化功能并为其提供自定义最小化功能。我打电话跟scipy.minimize最大返回值
result = op.minimize(calc_chi2, start_list, args=())
的calc_chi2()
功能看起来像极小
def calc_chi2(parameters):
if within_priors(parameters):
# calculate chi2
else:
return math.inf
此功能测试是否某些先验内的参数,如果没有它应该返回一个非常大的志^ 2。我使用math.inf,然而导致最小化者将参数向量设置为nan,所以我猜最小值不喜欢math.inf?如果我只是使用大量数据,一切正常......我只是想知道这里的正确方法是什么?
但它是我谁返回无限的chi^2我不需要捕捉那个?我只是寻找一个更好的解决方案,而不仅仅是一个很大的chi^2中的硬编码,如果参数超出了先前的范围... – carl
你能解释一下当无限chi发生时你想要发生什么吗? – charlesreid1
因为我想要最小化算法知道这个参数集在先验之外,因此应该有零可能性 – carl