先日、二体問題での簡単な軌道変換の最適化問題を扱った。この問題の制御変数(可変パラメータ) は1つだったので、Excel を使い、制御変数を適当な刻みで変化させてみれば解はすぐ求まると考えた。Excel に式を入力し終わり、制御変数を変えてみようとした時、Excel にソルバーというアドイン・ツールがある事を思い出した。まだ、使った事が無かったので、今回はそれを試してみようと思った。
先ず、「Excel のオプション」でアドインを選択し、ソルバーを組み込む。すると、「データ」メニューの右端に、「ソルバー」のボタンが現れる。なお、私は、Office2007を使っている。
Excel で制御変数や評価関数のセルに値や式を入力し、その後、「ソルバー」ボタンを押す。そして、どのセルを制御変数や評価関数にするかを指定する。実行すると、すぐに解が得られた。非常に簡単であった。
以上は、1次元の問題で制約条件は何もないシンプルな問題だった。複数次元で等号制約や不等号制約が有る場合も使えそうだったので、簡易な最適化問題で試してみた。軌道計算の最適化計算では、通常は
SQP法を使っている。そこで、SQP法のソフトに附属している例題を、Excel で解いてみた。等号制約が1つ、不等号制約が2つの2次元の最小化問題である。SQP法の解より、有効数字が2桁悪い解であったが、殆ど問題ない解が得られた。
Excel のソルバーでは、制約条件の考慮のために
乗数法が使われていた。乗数法で制約なし最適化問題に変換した後、準ニュートン法で解く。共役傾斜法も選択できる。評価関数や制約条件のセルに入力する式がそれほど複雑でない場合は、Excel のソルバーで問題ないと思った。しかし、軌道の最適化計算では、運動方程式を数値積分する事が多く、Excel の出番は多くないかも知れない。