Excelで操る!フィボナッチ探索法による最小値(最大値)の探索

        


Excelを用いた科学技術計算が第2版になりました 30年10月

amazon:Excelで操る! ここまでできる科学技術計算 第2版

楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ]


  図1 例題関数のグラフ

フィボナッチ数


 フィボナッチ数は次式で定義される。

 FN = FN-1+FN-2

 F0 = F1=1

 Excelを用いると簡単に計算され、下図となる。


      図2 Excelを用いたフィボナッチ数の計算


たった1日で即戦力になるExcelの教科書

入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)

Excel VBAのプログラミングのツボとコツがゼッタイにわかる本

すぐに使える! Excel関数逆引き辞典



最小値を求めるときのフィボナッチ探索法

図2 分割法


 探索回数(N)が決まっている場合、探索範囲をフィボナッチ数(FN)で分割し、探索する方法が原理的にもっとも有利である。
図2の様に、FN=FN-1+FN-2となるフィボナッチ数の性質を利用し、探索範囲FNをFN-1対FN-2に分割し、分割点の関数値を比較しながら探索範囲を狭めていく。けっきょく、探索範囲をFN-2/FNの比で分割していくことになる。

計算手順を下記に示す。

(1) 探索範囲[F:T]を設定する。

(2) FN-2/FNの比に左側分割点L、右側分割点Rを求める。

(3) 分割点での関数値f(L)、f(R)を求める。

(4) f(L) > f(R)のとき、FをLに置き換える。そうでないとき、TをRに置き換える。

(5) (2)〜(4)をN回繰り返す。

Excelで操る!黄金比/黄金分割法による最小値(最大値)の探索では範囲分割比が一定となる黄金比を採用した。フィボナッチ法はこの範囲分割比が一定の条件をはすしたことななる。Nが大きいとき、最初の分割比は黄金比に近づく。



Excelで操る!フィボナッチ探索法


Excelを用いて例題の関数f(x)=x+2/xの最小値を初期探索範囲[1:2]、探索回数(N=15)の条件で求めてみよう。理論解はx=√2のときf(x)は最小となる。
図3様に、セルに計算を組み込む。


                             図3 フィボナッチ探索法

分割点を分数表記すると、分母がフィビナッチ数F15=987になっていることがわかる。図4のように探索範囲をグラフにすると解(√2)に近づいている。


                 図4 探索範囲の変化



 





EXCELを用いた科学技術計算

EXCELのソルバーを用いた科学技術計算



〒673−0036 兵庫県明石市松江62−14
(有)ゴッドフット企画



感想をお聞かせ下さい



JR福知山線 脱線事故シミュレーション

脱線事故シミュレーションもEXCELで
(Yahoo Japan 掲載)


Copyright (C) GODFOOT 2010 All Rights Reserved.