大域的非線形数値最適化の例
複数の最適解を求める,メソッド1
これは複数の極小値を求めるひとつの方法である.異なる乱数の種でNMinimizeを複数回呼び出す.これにより異なる最適化のパスが取られる.
複数の最適解を求める,メソッド2
次は複数の極小値の別の求め方である.まず通過するすべての点のリストを作るように目的関数を書き,次に最終的な解に近い目的関数の値を持つ点を選ぶ.
データの非線形フィットを求める
次にこの点とFindFitによる解をプロットする.三角関数であるため,解は極小値により捕えられる:
以下でデータから平方和を生成し,NMinimizeを使って最小値を求める.
その点とNMinimizeの解をプロットしたものである:
Solveの例
この連立方程式は非常に非代数的なので,Solveは使えない:
NMinimizeに一定の目的関数と,制約条件として解かれる方程式を与える.これで解が見付かる:
チェス盤上のクィーン
次ではどのクイーンも他のクイーンを攻撃しないようにチェス盤上の全クイーンに適用するようにDifferentialEvolutionを用いる.離散問題の性質上後処理は役に立つとは思えないので行わないようにしておく: