読者です 読者をやめる 読者になる 読者になる

離散化

航空 大学

CFDを勉強し始めて結構経つのだけど、

「離散化」の概念をあんまり理解していなかったと思ったのでメモ。

ほんとうに今さらという感じなんだけど。

 

数値解析でいう「離散化」は自動車教習で習うアクセルとブレーキくらい

基本中の基本なもの。

だから、論文を読んでいても、まるで一般常識だろと言わんまでに

「有限差分法で離散化する」としか書かれてなかったりするんですよね。

いやいや、そりゃアクセルとブレーキは日常生活で使うから良しとしても、

数値解析の用語は生活圏内にないよ…。

...と言う相手さえおらず、私はこれまで実践的な離散化した後の式が

載っているところだけを掻い摘んでいました。

 

だから今まで本当に式の上でしか捉えていなくて、

(自分の中の離散化の概念)

f:id:m_ilkboy:20160913233047p:plain

                   ↓                     

f:id:m_ilkboy:20160913232958p:plain

のように「解析解が出ない関数の式を数値計算用に変換すること」

を離散化というのだろうなあ、とそれくらいの認識でした。

(たぶんこれはこれで間違ってないと思うのだけど…。)

 

離散化誤差もなんとなくあるわな?くらいの感覚で、

論文で「有限差分法で離散化」と出てきても式変形が頭に浮かぶ程度。

でもこの間久しぶりに流体力学数値計算法(通称・銀本)の

頭のほうを読んでいたら、うまい説明が載っていたので概略だけでも紹介します。

 

離散化

点列からなるデータ(その間の分布についての情報はない)のことを離散データといい、

連続なデータを離散データに落とすことを離散化という。

例えば、天気予報で1時間ごとの天気が示されていたとする。

この、1時間ごとのデータが離散データ。

1時間前と今の天気のデータを見て、その間の天気、その後の天気を予測する。

これが離散化とで、離散データから時間を要素にした連続した関数を

自分で予測して、自分に都合のいい時間を当てはめてその時間の天気を出した、

ということになる。

つまり、離散化はこの逆の操作をすれば良い。

時間を入力すれば、その時の天気がわかる関数を用意して、

そこに時間を当てはめていき、1日流れを作る。これが離散化。

だから、有限差分法で解く場合、最初に必要となるのは連続である領域に

有効な分子を分布させること(天気を求めたい時間をあらかじめ設定しておくこと)、

領域内の関数分布を格子点上の値で置き換えることが離散化、ということになる。

 

…という大意でした。

そのまま引用するとまずいかなと思って書き換えたらややこしくなったな…。

原本の方がわかりやすいので気になる人は手に取ってみてください。

 

数値解析の教科書は読んできたのだけど最初の概念の説明を省いて、

さあさあN-S方程式からどう変形していけばいいのかな?

粘性項はどうやってプログラムに落とし込めばいいのかな?

とばかり考えていた自分としては反省の言葉しか見当たらないのでした。

今は数値計算にk-ωSSTとLESを混ぜたDESという乱流モデルを使っているのだけど、

いざkが何かと言われて戸惑ってしまったのも最近の反省。

流れ場の中で剥離が激しいところを見て

「kの分布見たら速度変動が激しいところがわかるかもよ?」

とアドバイスがぱっと出てくるドクターには頭が上がらないです。

(↑を言われたときには乱流の運動エネルギーだから変動が現れて

当たり前だと改めて勉強して確かに、と膝を打たずにはいられなかった。)

この辺りの定義が皮膚感覚として染み付いている人は本当すごいなと思う。

自分はいつまで経っても覚えられないです。

 

流体力学の数値計算法

流体力学の数値計算法

 

 

*************************

はてな記法LaTeXで数式を書こうとしたけど認識してくれなかったから

久しぶりにMathTypeで数式書いた。卒論を思いだして泣いた。