Module: Num4SimDiffLib
- Extended by:
- FFI::Library
- Defined in:
- lib/num4simdiff.rb
Class Method Summary collapse
-
.eulerMethod(yi, xi, h, func1, func2) ⇒ double
オイラー法による数値計算.
-
.heunMethod(yi, xi, h, func1, func2) ⇒ double
ホイン法による数値計算.
-
.rungeKuttaMethod(yi, xi, h, func1, func2) ⇒ double
4次のルンゲ=クッタ法による数値計算.
Instance Method Summary collapse
-
#f(x, dx) {|x, dx| ... } ⇒ double
dy = f(x, dx).
Class Method Details
.eulerMethod(yi, xi, h, func1, func2) ⇒ double
オイラー法による数値計算
36 37 38 39 40 41 |
# File 'lib/num4simdiff.rb', line 36 def eulerMethod(yi, xi, h, func1, func2) yi_ptr = cnvRbAry2pt(2, yi) yi_1_ptr = eulerMethodFFI(yi_ptr, xi, h, func1, func2) yi_1 = cnvPt2RbAry(2, yi_1_ptr) return 1 + yi_1[0] + 0.5 * yi_1[1] end |
.heunMethod(yi, xi, h, func1, func2) ⇒ double
ホイン法による数値計算
53 54 55 56 57 58 |
# File 'lib/num4simdiff.rb', line 53 def heunMethod(yi, xi, h, func1, func2) yi_ptr = cnvRbAry2pt(2, yi) yi_1_ptr = heunMethodFFI(yi_ptr, xi, h, func1, func2) yi_1 = cnvPt2RbAry(2, yi_1_ptr) return 1 + yi_1[0] + 0.5 * yi_1[1] end |
.rungeKuttaMethod(yi, xi, h, func1, func2) ⇒ double
4次のルンゲ=クッタ法による数値計算
70 71 72 73 74 75 |
# File 'lib/num4simdiff.rb', line 70 def rungeKuttaMethod(yi, x, h, func1, func2) yi_ptr = cnvRbAry2pt(2, yi) yi_1_ptr = rungeKuttaMethodFFI(yi_ptr, x, h, func1, func2) yi_1 = cnvPt2RbAry(2, yi_1_ptr) return 1 + yi_1[0] + 0.5 * yi_1[1] end |
Instance Method Details
#f(x, dx) {|x, dx| ... } ⇒ double
16 |
# File 'lib/num4simdiff.rb', line 16 callback :f, [:double, :double], :double |