0

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] が負になる! 何か提案はありますか?

4

1 に答える 1

1

これには lmfit ライブラリを使用できます。

http://cars9.uchicago.edu/software/python/lmfit/

制約をサポートし、scipy の上に構築されています。

于 2014-03-28T23:26:20.997 に答える