Module: Num4SimDiffLib
- Extended by:
- FFI::Library
- Defined in:
- lib/num4simdiff.rb
Class Method Summary collapse
-
.eulerMethod(yi, h, func) ⇒ double[]
オイラー法による数値計算.
-
.heunMethod(yi, h, func) ⇒ double[]
ホイン法による数値計算.
-
.rungeKuttaMethod(yi, h, func) ⇒ double[]
4次のルンゲ=クッタ法による数値計算.
Class Method Details
.eulerMethod(yi, h, func) ⇒ double[]
オイラー法による数値計算
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/num4simdiff.rb', line 34 def eulerMethod(yi, h, func) n = yi.size f = func.call(n, yi) f_ptr = cnvRbAry2pt(n, f) yi_ptr = cnvRbAry2pt(n, yi) yi_1_ptr = eulerMethodFFI(n, yi_ptr, h, f_ptr) yi_1 = cnvPt2RbAry(n, yi_1_ptr) f_ptr.free() return yi_1 end |
.heunMethod(yi, h, func) ⇒ double[]
ホイン法による数値計算
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/num4simdiff.rb', line 62 def heunMethod(yi, h, func) n = yi.size f = func.call(n, yi) f_ptr = cnvRbAry2pt(n, f) yi_ptr = cnvRbAry2pt(n, yi) yi_1_ptr = heunMethodFFI(n, yi_ptr, h, f_ptr) yi_1 = cnvPt2RbAry(n, yi_1_ptr) f_ptr.free() return yi_1 end |
.rungeKuttaMethod(yi, h, func) ⇒ double[]
4次のルンゲ=クッタ法による数値計算
90 91 92 93 94 95 96 97 98 99 |
# File 'lib/num4simdiff.rb', line 90 def rungeKuttaMethod(yi, h, func) n = yi.size f = func.call(n, yi) f_ptr = cnvRbAry2pt(n, f) yi_ptr = cnvRbAry2pt(n, yi) yi_1_ptr = rungeKuttaMethodFFI(n, yi_ptr, h, f_ptr) yi_1 = cnvPt2RbAry(n, yi_1_ptr) f_ptr.free() return yi_1 end |