2017-05-02から1日間の記事一覧

TI-Nspire & Lua / 古典的ルンゲクッタ法 4 / クロージャを使って初期値を更新しながら 1 ステップずつの計算を繰り返すが、1 ステップをさらに内部分割する

function rk(func, t0, x0, step, numOfDiv) -- numOfDiv は 1 ステップの内部分割数 local numOfDiv = numOfDiv or 1 local step = step / numOfDiv local stepDiv2 = step / 2 local stepDiv6 = step / 6 local f1, f2, f3, f4 local t0, x0 = t0, x0 loca…

TI-Nspire & Lua / 古典的ルンゲクッタ法 3 / クロージャを使って初期値を更新しながら 1 ステップずつの計算を繰り返す

function rk(func, t0, x0, step) local t0, x0 = t0, x0 local stepDiv2 = step / 2 local stepDiv6 = step / 6 local halfPoint = t0 + stepDiv2 local f1, f2, f3, f4 return function() f1 = func(t0 , x0 ) f2 = func(halfPoint , x0 + stepDiv2 * f1) …

TI-Nspire & Lua / 古典的ルンゲクッタ法 2 / 何ステップかを一度にまとめて計算する

参考: パソコンで見る天体の動き, p.25 function rk(func, period, init, step) local step = step local from = period[1] local to = period[2] local initList = {init} local timeList = {from} local stepDiv6 = step / 6 local stepDiv2 = step / 2 fo…