ブロイデン法

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:翻訳直後

数値解析において、ブロイデン法(ブロイデンほう、テンプレート:Lang-en-short)とは準ニュートン法の1種であり、多変数関数求根に用いられるアルゴリズムである。1965年テンプレート:仮リンクが発表した[1]

ニュートン法によりテンプレート:Mathを解く場合、各イテレーションごとにヤコビアンテンプレート:Mvarを用いることになる。しかし、ヤコビアンを計算するには困難で複雑な演算を要する。ブロイデン法では、ヤコビアン全体を最初のイテレーションで1回だけ計算し、以降のイテレーションではランク1更新を用いる。

1979年、Gayによりブロイデン法はサイズテンプレート:Mathの線形システムに適用したときテンプレート:Mathステップで終了することが証明された[2]。しかし、他の準ニュートン法と同様、非線形システムに対しては収束する保証はない。

手法の詳細

1変数方程式の求根

割線法では、テンプレート:Mathテンプレート:Mathにおける1階微分有限差分近似する。

f(xn)f(xn)f(xn1)xnxn1

その上で、ニュートン法と同様の操作を繰り返す

xn+1=xnf(xn)f(xn)

ここでテンプレート:Mathはイテレーション指数である。

非線形方程式系の求根

テンプレート:Math本の非線形方程式の系

𝒇(𝒙)=𝟎

を考える。ここでテンプレート:Mvarベクトルテンプレート:Mvarベクトル値関数である。

𝒙=(x1,x2,x3,,xk)
𝒇(𝒙)=(f1(x1,x2,,xk),f2(x1,x2,,xk),,fk(x1,x2,,xk))

このような問題に対して、ブロイデンは1次元ニュートン法の微分をヤコビアンテンプレート:Mvarで置き換えて一般化した手法を考案した。ヤコビアンは、次のように割線法における有限差分近似にもとづいて反復的に決定される。

𝑱n(𝒙n𝒙n1)𝒇(𝒙n)𝒇(𝒙n1)

ここでテンプレート:Mathはイテレーション指数である。

𝒇n=𝒇(𝒙n)
Δ𝒙n=𝒙n𝒙n1
Δ𝒇n=𝒇n𝒇n1

のように定義すると、上式は以下のように簡潔に書ける。

𝑱nΔ𝒙nΔ𝒇n

上式はテンプレート:Mathが1より大きい場合はテンプレート:仮リンクとなる。ブロイデンは、以下のようにヤコビアンの現状の推定値テンプレート:Mathを最低限の変更により割線方程式を満たすよう改善することを提案した。

𝑱n=𝑱n1+Δ𝒇n𝑱n1Δ𝒙nΔ𝒙n2Δ𝒙n

これにより以下のフロベニウスノルムが最小化される。

𝑱n𝑱n1F

これによりニュートン方向へ進むことができる。

𝒙n+1=𝒙n𝑱n1𝒇(𝐱n)

ブロイデンはテンプレート:仮リンクを用いてヤコビアンの逆行列を直接更新することも提案している。

𝑱n1=𝑱n11+Δ𝒙n𝑱n11Δ𝒇nΔ𝒙nT𝑱n11Δ𝒇nΔ𝒙n𝑱n11

この1つ目の手法は「良いブロイデン法」テンプレート:訳語疑問点とも呼ばれる。

類似手法として、テンプレート:Mathに若干異なる変更を加える手法も導出できる。この2つめの手法は「悪いブロイデン法」テンプレート:訳語疑問点とも呼ばれる(ただし、[3]を参照)。

𝑱n1=𝑱n11+Δ𝒙n𝑱n11Δ𝒇nΔ𝒇n2Δ𝒇n

これは上とはことなる以下のフロベニウスノルムを最小化する。

𝑱n1𝑱n11F

他にも多くの準ニュートン法が提案されており、これを用いてある関数の勾配の求根を行うことによりその関数の最大値または最小値を見つける、すなわち最適化を行うために活用されている。勾配のヤコビアンはヘッシアンと呼ばれ、対称行列であるため更新式にさらなる制約が追加される。

Broyden Classの手法

上述の2つの手法に加え、ブロイデンは関連する手法の1群を定義した[1]テンプレート:Rp。一般に、Broyden Classテンプレート:訳語疑問点の手法は以下の形式で与えられる[4]テンプレート:Rp𝑱k+1=𝑱k𝑱ksksk𝑱ksk𝑱ksk+ykykykTsk+ϕk(sk𝑱ksk)vkvkここで、yk:=𝒇(𝒙k+1)𝒇(𝒙k)およびsk:=𝒙k+1𝒙kvk=[ykykTsk𝐉kskskT𝐉ksk]であり、k=1,2,...に対して各ϕkを定めることによりその手法が決定される。

Broyden classに分類できる手法のいくつかは他の著者により提案されている。

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

関連項目

外部リンク

テンプレート:最適化アルゴリズム