Nspire での実行結果:
上と同じ計算を Lua から実行する:
local g = 9.80665 --重力加速度 local length = 1 -- 棒の長さ local tMin = 0 -- スタート時間 local tMax = 2 -- ストップ時間 local angleInit = 1 -- 角度初期値 local velInit = 0 -- 角速度初期値 local step = 0.5 -- 時間ステップ local tol = 1e-4 -- 許容差 function on.paint(gc) local mat = math.eval("rk23({vel,((−"..g..")/("..length.."))*sin(θ)},t,{θ,vel},{"..tMin..","..tMax.."},{"..angleInit..","..velInit.."},"..step..","..tol..")") --確認のため行列の内容を表示する for i = 1, #mat do -- #mat は行列 mat の行数 for j = 1, #mat[1] do -- #mat[n] は行列 mat の列数 gc:drawString(mat[i][j], (j-0.9) * 150, (i-0.5) * 15) end end end