Module: Num4DiffLib

Extended by:
FFI::Library
Defined in:
lib/num4diff.rb

Overview

数値計算による常微分方程式の解法するライブラリ

Instance Method Summary collapse

Instance Method Details

#eulerMethoddouble

オイラー法による数値計算

yi_1 = eulerMethod(yi, xi, h, func)

Parameters:

  • yi (double)

    xiに対するyiの値

  • xi (double)

    xiの値

  • h (double)

    刻み幅

  • func (callback)

    xiに対する微分を計算する関数

Returns:

  • (double)

    yi_1 xi+hに対するyiの値



25
26
# File 'lib/num4diff.rb', line 25

attach_function :eulerMethod,
:CNum4Diff_eulerMethod, [:double, :double, :double, :f], :double

#fdouble

y = f(xi)

Parameters:

  • xi (double)

    xiの値

Returns:

  • (double)

    y xiに対するyの値



14
# File 'lib/num4diff.rb', line 14

callback   :f, [:double], :double

#heunMethoddouble

ホイン法による数値計算

yi_1 = heunMethod(yi, xi, h, func)

Parameters:

  • yi (double)

    xiに対するyiの値

  • xi (double)

    xiの値

  • h (double)

    刻み幅

  • func (callback)

    xiに対する微分を計算する関数

Returns:

  • (double)

    yi_1 xi+hに対するyiの値



35
36
# File 'lib/num4diff.rb', line 35

attach_function :heunMethod,
:CNum4Diff_heunMethod, [:double, :double, :double, :f], :double

#rungeKuttaMethoddouble

4次のルンゲ=クッタ法による数値計算

yi_1 = rungeKuttaMethod(yi, xi, h, func)

Parameters:

  • yi (double)

    xiに対するyiの値

  • xi (double)

    xiの値

  • h (double)

    刻み幅

  • func (callback)

    xiに対する微分を計算する関数

Returns:

  • (double)

    yi_1 xi+hに対するyiの値



45
46
# File 'lib/num4diff.rb', line 45

attach_function :rungeKuttaMethod,
:CNum4Diff_rungeKuttaMethod, [:double, :double, :double, :f], :double