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