プログラムの使用方法
提示したプログラムは,例として,以下に示す 3 つの関数の最小値を Newton 法によって求めるためのものです.プログラム例に示した makefile の部分は,make コマンドを使用してコンパイルする場合に必要となる makefile の例です.make を使用しない場合は必要ありません.なお,各関数の解近傍における外形については,このページの最後に添付した図をご覧下さい.
f = (x - 1)
2
+ (y - 2)
2
最小値:(1,2) で 0.0
f = 100(y - x
2
)
2
+ (1 - x)
2
最小値:(1,1) で 0.0
f = (1.5 - x(1 - y))
2
+ (2.25 - x(1 - y
2
))
2
+ (2.625 - x(1 - y
3
))
2
最小値:(3,0.5) で 0.0
コンパイルした後,入力データ記述ファイル「i_data」を適当に修正し,コマンドラインから,
test < i_data
と入力してやることによって実行できます.
入力データ記述ファイル「i_data」は,例えば,以下のように記述します.
関数 1 変数の数 2 最大試行回数 100 一次元最適化 0 許容誤差 1.0e-10 刻み幅 0.5 初期値 0.0 0.0
上に示した各データにおいて,日本語の部分は次に続くデータの説明になっていますので,数字の部分だけを修正してください.日本語の部分を変更しても構いませんが,削除したり,間に半角のスペースを入れるようなことはしないでください.各データの意味は以下に示す通りです.
関数 1
対象とする関数を指定します.上述の a,b,及び,c の各関数に対応し,1,2,または,3 を入力します.
変数の数 2
変数の数を入力します.現在の例では,すべての関数に対して 2 となります.
最大試行回数 100
最大試行(繰り返し)回数を入力します.
一次元最適化 0
歩み幅α(k)を1次元最適化によって求めるか否かを入力します.0 を入力すると歩み幅α(k)を一定とし,また,1 を入力すると黄金分割法によってα(k)を決めます.
許容誤差 1.0e-10
収束判定用の許容誤差です.
刻み幅 0.5
歩み幅を入力します.歩み幅α(k)を1次元最適化によって求める場合は,初期歩み幅となります.
初期値 0.0 0.0
各変数の初期値です.変数の数だけ(現在の例では 2)必要になります.