0

PyMinuitを使用して、いくつかのパラメーターを合計して1にする必要がある最小化を実行しようとしています。このようなことを実装する標準的な方法があるのだろうか?

制約が満たされていない場合、関数を大きな値に設定するのが通常ですか?例えば

def f(params):
    if params.sum() != 1:
        return 1e6
    else:
        ... compute actual value ...

ラウンドごとにパラメーターを正規化することは非常に悪い考えですか?例えば

if params.sum() != 1:
    for param in params:
        param = param / params.sum()

ありがとう!

4

1 に答える 1

1

制約が最小化に組み込まれるように、おそらく物事を変更したいと思うでしょう。あなたが何をしているのかについての詳細がなくても、正確には、ラグランジュ乗数を導入してみます。これは新入生の微積分コースで行うのはかなり一般的なことなので、オンラインで多くの例を見つけることができるはずです.

PS: 素粒子物理学をやっているから PyMinuit を使っているのですか?

于 2013-02-18T21:27:42.747 に答える