gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
path: root/tests/ode.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ode.lua')
-rw-r--r--tests/ode.lua 31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ode.lua b/tests/ode.lua
new file mode 100644
index 00000000..49daf2aa
--- /dev/null
+++ b/tests/ode.lua
@@ -0,0 +1,31 @@
+-- tests for module ode
+use'num'
+local tt = {}
+
+local methods={'rk8pd','rkf45'}
+
+local function odef(t, x, y)
+ return -y^2, 2*x - y^3
+end
+
+-- we define initial values
+local t0, t1, h0 = 0, 30, 0.04
+local x0, y0 = 1, 1
+
+-- function tests
+for i,method in ipairs(methods) do
+ tt[method] = function(test)
+ local s = ode{N= 2, eps_abs= 1e-8, method=method}
+ s:init(t0, h0, odef, x0, y0)
+ local function f(i)
+ local t = i*(t1-t0)/10
+ while s.t < t do
+ s:evolve(odef,t)
+ end
+ return {s.y[1],s.y[2]}
+ end
+ test{iter.ilist(f,10)}
+ end
+end
+
+return tt
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月12日 06:52:12 +0000

AltStyle によって変換されたページ (->オリジナル) /