Module: Num4MechaEquLib

Defined in:
lib/num4mechaequ.rb

Overview

数値計算による力学方程式の解法するライブラリ

Class Method Summary collapse

Class Method Details

.motiEqu4freeFallEqu(m, h0, v0) ⇒ hash[]

自由落下による運動方程式(空気抵抗有り)

Returns 0秒から1秒までの位置(h)と速度(v)の値.

Parameters:

  • m (double)

    重りの重さ

  • h0 (double)

    初期位置値

  • v0 (double)

    初期速度

Returns:

  • (hash[])

    0秒から1秒までの位置(h)と速度(v)の値



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/num4mechaequ.rb', line 54

def motiEqu4freeFallEqu(m, h0, v0)
    hvt = []
    yi_1 = []
    yi = [h0, v0]
    0.step(1, @t) { |x|
      yi_1 = Num4SimDiffLib.rungeKuttaMethod(yi, @t, @motionFunc)
      hvt.push({"t" => x, 
                "h" => yi_1[0], "v" => m * yi_1[1]})
      yi = yi_1
    }
    return hvt

end

.springFreqEqu(k, m, h0, v0) ⇒ hash[]

バネの固有振動

Returns 0秒から1秒までの位置(h)と速度(v)の値.

Parameters:

  • k (double)

    バネ定数

  • m (double)

    重りの重さ

  • h0 (double)

    初期位置値

  • v0 (double)

    初期速度

Returns:

  • (hash[])

    0秒から1秒までの位置(h)と速度(v)の値



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/num4mechaequ.rb', line 33

def springFreqEqu(k, m, h0, v0)
    @w = Math.sqrt((k / m))
    hvt = []
    yi_1 = []
    yi = [h0, v0]
    0.step(1, @t) { |x|
      yi_1 = Num4SimDiffLib.rungeKuttaMethod(yi, @t, @springFunc)
      hvt.push({"t" => x, 
                "h" => yi_1[0], "v" => m * yi_1[1]})
      yi = yi_1
    }
    return hvt
end