(32)二重振子 4(前回作った、Nspire のユーザー定義函数を Lua から実行する)

Nspire の Calculator アプリケーションでの実行結果
f:id:ti-nspire:20150624062801j:plain

同じ函数Lua から実行する。
f:id:ti-nspire:20150624062931j:plain

local g = 9.80665
local l1 = 1
local m1 = 1
local l2 = 1
local m2 = 1
local tstart = 0
local tstop = 0.06
local ini_theta1 = 1
local ini_v1 = 0
local ini_theta2 = 1
local ini_v2 = 0
local step = 0.02
local tol = 0.0001
  
var.store("g", g)
var.store("l1", l1)
var.store("m1", m1)
var.store("l2", l2)
var.store("m2", m2)
var.store("tstart", tstart)
var.store("tstop", tstop)
var.store("ini_theta1", ini_theta1)
var.store("ini_v1", ini_v1)
var.store("ini_theta2", ini_theta2)
var.store("ini_v2", ini_v2)
var.store("step", step)
var.store("tol", tol)
 
function on.paint(gc)
   mat = math.eval("calculus\\w_pend(g, l1, m1, l2, m2, tstart, tstop, ini_theta1, ini_v1, ini_theta2, ini_v2, step, tol)")
   for i = 1, #mat do
      for j = 1, #mat[1] do
         gc:drawString(mat[i][j], (j-1) * 180, (i-1) * 20)
      end
   end
end