HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > 計算物理学

古典ルンゲ・クッタ法(4次の精度)による積分テスト

文責:遠藤 理平 (2016年9月15日) カテゴリ:TIPS 集(107)計算物理学(165)

局所計算精度が4次である古典ルンゲ・クッタ法を用いて、1階の微分方程式

\frac{dx(t)}{dt} =f(t)

を計算して、誤差を調べます。具体的にはf(t)=t^5に対して 0\leq t \leq 3の範囲で積分した結果を解析解と比較します。 局所計算精度が4次なので、1ステップの計算誤差は5次です。そのため大局計算誤差4次となります。 次のグラフは積分区間の分割数に対する計算誤差をプロットした結果です。 大局計算誤差が4次であることが確認できます。

計算誤差

計算アルゴリズム(古典ルンゲ・クッタ法)

//積分区間
var T = 1;
//被積分関数
function g( t, x ){
	return t*t*t;
}
//1ステップの計算
function RK4 ( f, dt, t, x ){
	var k1 = f( t,        x );
	var k2 = f( t + dt/2, x + k1*dt/2 );
	var k3 = f( t + dt/2, x + k2*dt/2 );
	var k4 = f( t + dt  , x + k3*dt );
	return x + dt / 6 *(  k1 + 2 * k2 + 2 * k3 + k4 );
}
function calculation( N ){
	var dt = T/N;
	var x = 0;
	for( var i=1; i<=N; i++ ){
		var t = dt * (i-1);
		x = RK4( g, dt, t, x );
	}
	return x;
}

物理シミュレーションについては「HTML5による物理シミュレーション」を参照ください。 数式の表示は「Tex表記によるHTML文書への式の埋め込み」をご覧ください。



▲このページのトップNPO法人 natural science トップ

関連記事

TIPS 集

計算物理学

▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました