Python で levenberg-marquadt ルーチンに制約を追加する良い方法はありますか? 私がこれまでに見つけたのは、主にエラー関数を次のようなものに変更することです
def errorfunction(params, PSD_data, bins):
if (params[0] < 0) or (params[1] < 0) or (params[2] < 0):
return (PSD_data - PSD_fit(params, bins))*1000
else:
return PSD_data - PSD_fit(params, bins)
しかし、それでも間違った結果が得られる可能性があります。params[0] が負になる! 何か提案はありますか?