ローレンツ96モデル

動的システム

ローレンツ96モデルは、エドワード・ローレンツ1996年に定式化した力学系である。[1]これは以下のように定義される 1 {\displaystyle i=1,...,N}

d × d t × + 1 × 2 × 1 × + F {\displaystyle {\frac {dx_{i}}{dt}}=(x_{i+1}-x_{i-2})x_{i-1}-x_{i}+F}

ここで、およびおよびであると仮定します。ここで、はシステムの状態であり、は強制定数です。はカオス的な動作を引き起こすことが知られている一般的な値です。 × 1 × 1 × 0 × {\displaystyle x_{-1}=x_{N-1},x_{0}=x_{N}} × + 1 × 1 {\displaystyle x_{N+1}=x_{1}} 4 {\displaystyle N\geq 4} × {\displaystyle x_{i}} F {\displaystyle F} F 8 {\displaystyle F=8}

これはデータ同化におけるモデル問題としてよく使われる[2]

Pythonシミュレーション

シミュレーションの最初の3つの変数のプロット
scipy.integrateからodeintをインポートし、matplotlib.pyplotをpltとしてインポートし、 numpyをnpとしてインポートします。   
   
   

# これらは定数です
N  =  5   # 変数の数
F  =  8   # 強制


def L96 ( x , t ): """一定の力を持つローレンツ96モデル""" return ( np . roll ( x , - 1 ) - np . roll ( x , 2 )) * np . roll ( x , 1 ) - x + F  
    
                 


x0  =  F  *  np . ones ( N )   # 初期状態(平衡)
x0 [ 0 ]  +=  0.01   # 最初の変数に小さな摂動を加える
t  =  np . arange ( 0.0 ,  30.0 ,  0.01 )

x  =  odeint ( L96 ,  x0 ,  t )

# 最初の3つの変数をプロットします。 
fig  =  plt . figure () 
ax  =  fig . add_subplot ( projection = "3d" ) 
ax . plot ( x [:,  0 ],  x [:,  1 ],  x [:,  2 ]) 
ax . set_xlabel ( "$x_1$" ) 
ax . set_ylabel ( "$x_2$" ) 
ax . set_zlabel ( "$x_3$" ) 
plt . show ()

Juliaシミュレーション

DynamicalSystems PyPlot PyPlot.using3D ()使用する  


# パラメータと初期条件
N = 5 F = 8.0 u₀ = F * ones ( N ) u₀ [ 1 ] += 0.01 # 小さな摂動  
  
    
   

# Lorenz-96モデルはDynamicalSystems.jlで事前定義されてい
ます: ds = Systems.lorenz96 ( N ; F = F )     

# 同様に、高速バージョンを明示的に定義するには、次のようにします。struct 
Lorenz96 { N } end # サイズ型の構造体function  ( obj :: Lorenz96 { N } )( dx , x , p , t ) where { N } F = p [ 1 ] # 3 つのエッジ ケースを明示的に (パフォーマンス) @inbounds dx [ 1 ] = ( x [ 2 ] - x [ N - 1 ]) * x [ N ] - x [ 1 ] + F @inbounds dx [ 2 ] = ( x [ 3 ] - x [ N ]) * x [ 1 ] - x [ 2 ] + F @inbounds dx [ N ] = ( x [ 1 ] - x [ N - 2 ]) * x [ N - 1 ] - x [ N ] + F # n in 3一般的なケース: ( N - 1 ) @inbounds dx [ n ] = ( x [ n + 1 ] - x [ n - 2 ]) * x [ n - 1 ] - x [ n ] + F終了何も返さない終了  
      
      
    
                 
               
                   
    
         
                         
    
     


lor96 = Lorenz96 { N }() # 構造体ds = ContinuousDynamicalSystem ( lor96 , u₀ , [ F ])を作成   
    

# そして軌道を進化させます
dt = 0.01 # サンプリング時間Tf = 30.0 # 最終時間tr = trajectory ( ds , Tf ; dt = dt )   
   
      

# 3Dでプロットします: 
x , y , z = columns ( tr ) plot3D ( x , y , z )    
  

参考文献

  1. ^ ロレンツ、エドワード (1996). 「予測可能性 ― 部分的に解決された問題」(PDF) .予測可能性に関するセミナー、第1巻、ECMWF .
  2. ^ Ott, Edward; et al. (2002). 「大気データ同化のための局所アンサンブルカルマンフィルタ」. arXiv : physics/0203058 .
「https://en.wikipedia.org/w/index.php?title=Lorenz_96_model&oldid=1322235079」から取得