【科学技術計算講座ミニ】勾配計算方法(最小二乗法による勾配)

今回は有限体積法で勾配を計算する方法の中で、最小二乗法を使って計算する方法について説明します。

Green-Gaussの定理による勾配計算法は以下の記事を参照ください。

有限体積法で勾配を計算する方法について解説します。ここでは、Green-Gaussの定理にもとづく勾配の計算方法について説明しています。面の値の計算方法もセルと節点にもとづく方法を紹介します。

最小二乗法

最小二乗法(Least Squares Method)とは、あるデータの組(xi,yi)(xi,yi)に対して、モデル関数y=f(x)y=f(x)を仮定したとき、

J=i(yif(xi))2J=i(yif(xi))2(1)

が最小となるようなf(x)f(x)を求める方法です。

最小二乗法

これは、yiyiとモデル関数で想定される値f(xi)f(xi)の誤差の二乗和が最小になることを意味します。

ここで、f(x)f(x)が、

f(x)=kakgk(x)f(x)=kakgk(x)(2)

のように、未知の係数akakと既知の関数gk(x)gk(x)の線形結合によって与えられるとします。gk(x)gk(x)は既知なので、最小二乗法は未知のakakを求めることに帰着します。

(1)式を最小にするには、JJakakで偏微分したものが0(極値となる)という条件、

Ja0=Ja1==Jak=0Ja0=Ja1==Jak=0(3)

を課してやります。

(3)式は、akakに対する連立方程式となるため、これを解くとakakが求まります。

最小二乗法による勾配計算

最小二乗法をセルの勾配計算に適用するには、まずセルCCに隣接するセルFFの値ϕFϕFを、セルCCの勾配ϕCϕCを用いて次のように仮定します。

ϕF=ϕC+ϕCdFϕF=ϕC+ϕCdF(4)

ここで、dF=xFxCdF=xFxCxxは位置ベクトル

これは、FFの値が勾配ϕCϕCにより線形に表せるとしたものです。

勾配(最小二乗法)

ここで、(4)式を(1)式のf(xi)f(xi)として最小二乗法を適用します。

J=F{wF(ϕF(ϕC+ϕCdF))}2J=F{wF(ϕF(ϕC+ϕCdF))}2(5)

(5)式はセルCCに隣接する全てのセルFFに対して和をとっています。wFwFは、重み係数でセルFFの寄与に重みをつけるために導入します。

(5)式を3次元成分で書き下します。

J=Fw2F(ϕFϕC(ϕx|Cdx+ϕy|Cdy+ϕz|Cdz))2J=Fw2F(ϕFϕC(ϕxCdx+ϕyCdy+ϕzCdz))2(6)

ここで、dF=(dx,dy,dz)dF=(dx,dy,dz)

(6)式において、未知数はϕ/x|Cϕ/x|Cϕ/y|Cϕ/y|Cϕ/z|Cϕ/z|Cの勾配部分です。

最小二乗法を適用するために、次のように(3)式の条件を課します。

J(ϕx|C)=J(ϕy|C)=J(ϕz|C)=0J(ϕx|C)=J(ϕy|C)=J(ϕz|C)=0(7)

(7)式に(6)式を代入し整理すると、次の3式となります。

Fw2Fdx(ϕx|Cdx+ϕy|Cdy+ϕz|Cdz)=Fw2Fdx(ϕFϕC)Fw2Fdx(ϕxCdx+ϕyCdy+ϕzCdz)=Fw2Fdx(ϕFϕC)(8)
Fw2Fdy(ϕx|Cdx+ϕy|Cdy+ϕz|Cdz)=Fw2Fdy(ϕFϕC)Fw2Fdy(ϕxCdx+ϕyCdy+ϕzCdz)=Fw2Fdy(ϕFϕC)(9)
Fw2Fdz(ϕx|Cdx+ϕy|Cdy+ϕz|Cdz)=Fw2Fdz(ϕFϕC)Fw2Fdz(ϕxCdx+ϕyCdy+ϕzCdz)=Fw2Fdz(ϕFϕC)(10)

(8)~(10)式を行列の形で書くと、

(w2Fdxdxw2Fdxdyw2Fdxdzw2Fdydxw2Fdydyw2Fdydzw2Fdzdxw2Fdzdyw2Fdzdz)(ϕ/x|Cϕ/y|Cϕ/z|C)=(w2Fdx(ϕFϕC)w2Fdy(ϕFϕC)w2Fdz(ϕFϕC))

となります。(11)式は3×3行列の線形方程式で、容易に解くことができ、これにより勾配が求まります。

ここで重み係数wFについて考えます。

もし、wF=1であれば隣接セルごとの寄与が一律になります。中心位置までの距離が同じセル同士が隣接している場合は、これで問題ありません。しかし、大きさの違うセルが隣接している場合、近くに中心が位置するセルも、遠くに中心が位置するセルも同じ寄与度を持つことになります。

セル勾配の寄与

これはつまり、遠くに中心が位置するセルからの影響が過大になることを意味します。誤差関数Jを考えるうえでは、近くに中心があるセルからの影響を強く受けた方がより精度がよくなると考えられます。そのため、

wF=1|dF|

のように距離で重み付けする係数を考えます。こうすると、遠くに中心があるセルからの寄与が小さく、近くに中心があるセルからの寄与が大きくなります。

まとめ

今回は、最小二乗法によるセル勾配の計算方法について解説しました。多くの汎用流体解析ソフトでは、最小二乗法による勾配計算も選択することができます。普段、ソフトを使用する上で、勾配計算の設定まで意識することはないかもしれませんが、計算方法を知った上で手法の違いで結果がどの程度変わるか確かめておくとよいかも知れません。


全体の目次

スポンサーリンク
科学技術計算のご相談は「キャットテックラボ」へ

科学技術計算やCAEに関するご相談、計算用プログラムの開発などお困りのことは「株式会社キャットテックラボ」へお問い合わせください。

お問い合わせはこちら

フォローする