手習ひデジタル信号処理(219) Scilab、{Scilabデモ}、こちらにも出力関数あり

Joseph Halfmoon

前回からネルダーミード法を駆使する「もう一つの」関数デモに突入。neldermead_で始まる「群」デス。延々とデモを舐めてきたfminsearch関数に比べる「痒いところに手が届く」らしいのですが、素人老人にはその有難みがイマイチっす。今回は途中経過を出力する関数のデモとな。fminsearch関数でもあったな。

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上の    Scilab2024.0.0を使用させていただいております。(Scilabについては御本家 Scilab 様へ)

neldermead_outputcmd.sce

さて、Scilab言語のデモを端から舐めていく中で、前回、neldermead法を使って関数の最適化(最小値の発見)を行う関数fminsearch関数のデモを舐め終わりました。そしたらば即座に登場したのが関数名 “neldermead_”を頭にいただく「関数群」デス。ひとつの関数fminsearchでお手軽だったのに、多数の関数を呼び出さないと目的を果たせません。その代わり「コマケーところ」をガッツリいろいろ調整できるみたいです。

今回は、途中経過を出力する自前関数の適用です。でもね、以下の過去回でfminsearch関数の方の出力関数についてのデモみてます。

手習ひデジタル信号処理(213) Scilab、{Scilabデモ}、目出度いバナナ関数

正直、素人老人からすると、答えを求めようとする切実なモノがないせいか、fminsearch関数で十分でないの?などと思ってしまうんであります。不埒な。

今回のデモは、以下のデモ選択画面から起動できます。

selectNeldermeadOutputCmd

デモは首尾一貫してます、今回も評価対象の関数はバナナ関数(Rosenbrock関数)デス。

デモを起動すると以下のような結果が出力されます。outputA

そして帳尻はこんな感じ。outputZ

もはや見慣れてしまった最適化の結果に安心。今回は自前の出力関数を定義しているだけあって途中経過もガッツリです。

でもね、プロの人がみたらば、”neldermead_”関数群の凄いところが分かるのかもしれんけど、素人老人には有難みがサッパリっす。そんなメンドクセーことしないでも結果に至るし、途中経過もみられるfminsearchでいいんでないの?罰当たりな。

手習ひデジタル信号処理(218) Scilab、{Scilabデモ}、neldermead群 へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です