AZWF01 気象の数値予報 気象ノート・シリーズ X
検討事項(CFL条件、誤差)

Return Home  短期予報   1週間〜1ヶ月予報   
数値予報モデルの説明 操作のヒント 検討事項(CFL条件、誤差) 問題点・改善点 
Lorenz Strange Attractor  初期値鋭敏性の検討図  誤差の増大図

Originated: 2002-1/14  Last Updated: 2006-03/04

検討事項:自然現象を数学の数式で表現したとたん、必ずしも自然を正しく反映したことにはなっていません。      特に、現象を微分方程式のモデルとしたところまでは、「ヨシ」としても、数値計算するためには、      「差分」に落としてやらねば成らず、このあと「現象の進行速度」と計算の時間間隔である      「積分時間」の関係を満たすべきCFL条件、さらに、各種の誤差の問題が発生してきます。 1.CFL条件に関して 数値計算においては、 CFL条件:(風速x時間<格子間隔) が満足されなければなりません。 ここで、格子間隔=20km と考えますが、この数値予報モデルでは移流を一定値としていますので、 格子間隔は、変数にしていません。CFL条件についてほんの少しだけ検討しておきます。 風速u=10m/s、積分時間dt=6分 と仮定したとき、6分で現象の進行する距離は、 u*dt=(10m/s)*(6min)=(10*3600 m/h)*(6/60 hour)=3.6 km 3.6kmとなりますので、格子間隔は3.6kmより大きくとらなければなりません。 風速=30m/sの時の格子間隔は、3.6*3=10.8km以上とらなければならず、MSMの格子間隔(10km) では、具合が悪いかもしれません。 2.値の大きさと誤差の問題に関して 数値計算においては、誤差の問題が付きまといます。 ・例えば、小数点第5位以下を省略することによる「丸め誤差」 ・値の近い2つの数の差を求めるときに、有効桁数が失われることによる「桁落ち」の問題 ・微分方程式を差分方程式で近似することによる「打切り誤差」 等が考えられます。 次の差分方程式において、上記の初期値を当てはめて見ますと、 xn1=xn+(-(xn*gradxnx+yn*gradxny)+2*omega*Math.sin(phi)*yn-(1/dens)*(gradpresx)+fx)*dt; xn1=20.0+(-(20.0*0.00001+10.0*0.00001)+2*0.000073*(35*3.141592/180)*10.0-(1/1.23)*0.001+0.001)*6.0*60 となります。これをみますと、桁数が不ぞろいであることがなんとなく分かります。 上式右辺第2項以降(dtが乗算される項)を0.00001でくくってしまうと。 xn1=20.0+0.00001*[(-(20.0+10.0)+2*7.3*(35*3.141592/180)*10.0-(1/1.23)*100+100)]*6.0*60 となります。 ここで、細かい数値は無視してオーダー単位に(大胆に)表現すると xn1=20.0+0.00001*[(-30.0+100-100-100)]*360 =20.0-0.5 となり、大体「こんな感じのオーダーの数値の演算」であることがわかります。 一生懸命計算しても、結果としての風速がdrasticに変わるようには見えません。この0.5という 数値は、観測誤差の範疇と考えてもよさそうなくらいです。 仮に、繰返し計算を10回実行すると、場合によってはこの 0.5 が 5.0 に膨れ上がることも あり得ます。繰返し計算を、何百回、何千回と実行すると誤差が積もり積もって、結果が発散 してしまうことがあります。風速が、ある一定値に収束したり、振動したりするように見えても、 「誤差」という「危険物」を内在したものであると考えられます。 (ちなみに、気象業務法施行規則第1条の3において、風速の観測における最小位数は 1m/s と 定められています。数値予報の「むずかしさ」はこのあたりの事情にもあるのでしょうか。) なお、0.5 という数値に着目して、観測値(初期値となるであろう)が仮に、20.0 でなく、 20.5 であったとした場合、どのような予想値が得られるか、試して見て下さい。 得られる風速の予想値に、あまりおおきな変化は感じられないようです。しかし、摩擦力を -0.001から-0.0005 へ変えるだけで結果に顕著な違いが見受けられるでしょう。 予想値の変動に対して最も効果的に寄与するファクターを考えることが大事なようです。 以上のほかに、「情報の埋没」という計算上の問題があります。 即ち、例えば、摩擦力が0.0010で、移流項が0.00001であるとするとき、 移流項の小数点以下第5桁の数値 1 は、摩擦力の有効桁数の範囲外になってしまい、 両者の加算・減算においては、移流項の効果は正しく反映されないことになります。 このような計算上の問題を情報の埋没といいます。 シミュレーションで様々に値を変えることが可能ですが、以上の様なことを頭の中に入れて、 移流、気圧の勾配、摩擦力などを変えてシミュレーションしてください。 現象の変動がリアルになって見えるかも知れません。 参考: 天気図と気象理論 P.56 :「移流」という概念は数値予報のキーワードです。 天気図と気象理論 P.82 :気象に関係した数式を一覧表にしています。 この2ページは、拙著「天気図と気象理論」改定新版、に掲載してるものです。 いずれ、「#3 数値気象」にも掲載する積もりです。
AZURE トップページへ戻る Hajime satoh, All Rights Reserved. 2002-2006 AZURE 青空