7

Mathematica 8 で単純な等式の制約を使用すると、最小化が機能しません。例えば

FindMinimum[{x^2 + y^2,  y == 1}, {x, y}]

Mathematica 6 では正常に動作しますが、バージョン 8 ではエラーが発生します。他の誰かがこれを確認 (または説明) できますか? パラメータの 1 つを制約で修正すると、バージョン 8 が混乱するようです。パッティングxy==1は問題ありません。

これに関する簡単な回避策はありますか?を変更してみましたがMethod、運が悪いです。すべてのパラメーターをパラメーター リストに保持したいのですが、リストからパラメーター名を削除するのではなく、いくつかのパラメーターを単純な制約で保持します。バージョン 6 で動作するコードがありますが、8 では動作しません。

4

3 に答える 3

3

もう 1 つの回避策は、バージョン 9 を使用することです。

In[1]:= FindMinimum[{x^2 + y^2, y == 1}, {x, y}]
Out[1]= {1., {x -> 0., y -> 1.}}

つまり、上に表示されているのは、将来のリリースのために親切に修正されたバグです。

Daniel Lichtblau Wolfram Research

于 2011-05-20T14:05:18.797 に答える
2

あなたの構文は間違っているようです:

FindMinimum[{x^2 + y^2,  y == 1}, {x, y}]

xの値で開始するよう求めますy。これは私にはあまり意味がありません。

おそらくあなたはしようとしています:

Minimize[{x^2 + y^2, y == 1}, {x, y}]
  出力: {1, {x -> 0, y -> 1}}

どうやらあなたの構文有効です。Minimize上記のように、問題の回避策として考えてください。

于 2011-05-20T12:26:47.260 に答える
1
In[31]:= NMinimize[{x^2 + y^2, y == 1}, {x, y}]

Out[31]= {1., {x -> -3.20865*10^-9, y -> 1.}}

In[32]:= FindMinimum[{x^2 + y^2, 1 - 10^-10 <= y <= 1 + 10^-10}, {x, y}]

Out[32]= {1., {x -> 0., y -> 1.}}

しかし、どうすればmmaが無限の表情に出くわしても検索を続けさせることができるのだろうか? 誰でもあなたのアイデアを共有できますか?

ありがとう^_^

于 2011-05-20T13:35:50.570 に答える