num4mechaequ 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/num4mechaequ.rb +35 -8
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6a18f5e7ca589b774ab80c59c19c94c24e4901277064c2bbd1de066c2a5eae6c
4
- data.tar.gz: 11ecea5860ece5096d7537a9602f2f1c398e6854e4e38db128b101cb708c56eb
3
+ metadata.gz: 2924e1bd5f10cca8551f34b8d0e360206085627ebb69603c49df86bcf0777675
4
+ data.tar.gz: 0d74c4d37202716b4e43123dc10cd65c2862256bdbae7a95750f5d475a9faa39
5
5
  SHA512:
6
- metadata.gz: 0260dc768dc3130a2ffc1173ba2fa4bc87a0c95e4cd386273e328d158e8a79606ab8bdb174b6e967194a944f0b861fa51d87c990a58a02c836d09e4219157ddc
7
- data.tar.gz: cced4fc0b159eaf0ab3e6acff661ff9d243dedb129508fe4402883466f33b6dc9b3e3feb09e270e735b594708cb5274cb63ac943ab6e47b901eb016dbaf3e088
6
+ metadata.gz: 5ce0e327685b176f86aa6f1fdca4d44c6c0144299cb27f6a312d44eece88258841380b54decc0b0bfaebd0fe373ffee2b42b4dc11cce863e0f81e0ea7096a9f4
7
+ data.tar.gz: 0c35ff365050615fec0cf67c1edc7981a2a6d944a4e00cabcda63f065f124c7b67e1b0ca2a5c8675a7a4c337a806850f3928351748162a15743ce7e69568903f
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.0.2] - 2022-06-08
6
+
7
+ ### Added
8
+ - add function of motiEqu4freeFallEqu
9
+
5
10
  ## [0.0.1] - 2022-05-11
6
11
 
7
12
  ### Fixed
data/lib/num4mechaequ.rb CHANGED
@@ -4,17 +4,23 @@ require 'num4simdiff'
4
4
  # 数値計算による力学方程式の解法するライブラリ
5
5
  #
6
6
  module Num4MechaEquLib
7
- @g = 9.8 # 重力定数
7
+ @g = 9.80665 # 重力加速度
8
8
  @t = 0.001 # 時間刻み
9
- @k = 0.0 # バネ定数
10
- @m = 0.0 # 重りの重さ
9
+ @w = 0.0
11
10
  @springFunc = Proc.new do | n, yi |
12
11
  f = []
13
- f[0] = yi[1]
14
- f[1] = - (@k / @m) * yi[0] - @g
12
+ f[0] = yi[1] # hの傾き値
13
+ f[1] = @w * yi[0] - @g# vの傾き値
14
+ next f
15
+ end
16
+ @motionFunc = Proc.new do | n, yi |
17
+ f = []
18
+ f[0] = yi[1] # hの傾き値
19
+ f[1] = - @g # vの傾き値
15
20
  next f
16
21
  end
17
22
  class << self
23
+
18
24
  #
19
25
  # バネの固有振動
20
26
  # @overload springFreqEqu(k, m, h0, v0)
@@ -25,18 +31,39 @@ module Num4MechaEquLib
25
31
  # @return [hash[]] 0秒から1秒までの位置(h)と速度(v)の値
26
32
  #
27
33
  def springFreqEqu(k, m, h0, v0)
28
- @k = k
29
- @m = m
34
+ @w = Math.sqrt((k / m))
30
35
  hvt = []
31
36
  yi_1 = []
32
37
  yi = [h0, v0]
33
38
  0.step(1, @t) { |x|
34
39
  yi_1 = Num4SimDiffLib.rungeKuttaMethod(yi, @t, @springFunc)
35
- hvt.push({"t" => x, "h" => yi_1[0], "v" => yi_1[1]})
40
+ hvt.push({"t" => x,
41
+ "h" => yi_1[0], "v" => m * yi_1[1]})
36
42
  yi = yi_1
37
43
  }
38
44
  return hvt
39
45
  end
46
+ #
47
+ # 自由落下による運動方程式(空気抵抗有り)
48
+ # @overload motiEqu4freeFallEqu(m, h0, v0)
49
+ # @param [double] m 重りの重さ
50
+ # @param [double] h0 初期位置値
51
+ # @param [double] v0 初期速度
52
+ # @return [hash[]] 0秒から1秒までの位置(h)と速度(v)の値
53
+ #
54
+ def motiEqu4freeFallEqu(m, h0, v0)
55
+ hvt = []
56
+ yi_1 = []
57
+ yi = [h0, v0]
58
+ 0.step(1, @t) { |x|
59
+ yi_1 = Num4SimDiffLib.rungeKuttaMethod(yi, @t, @motionFunc)
60
+ hvt.push({"t" => x,
61
+ "h" => yi_1[0], "v" => m * yi_1[1]})
62
+ yi = yi_1
63
+ }
64
+ return hvt
65
+
66
+ end
40
67
  end
41
68
  end
42
69
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4mechaequ
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-08 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: num4simdiff
@@ -45,7 +45,7 @@ licenses:
45
45
  - MIT
46
46
  metadata:
47
47
  changelog_uri: http://github.com/siranovel/num4mechaequation/blob/main/CHANGELOG.md
48
- documentation_uri: https://rubydoc.info/gems/num4mechaequ/0.0.1
48
+ documentation_uri: https://rubydoc.info/gems/num4mechaequ/0.0.2
49
49
  homepage_uri: http://github.com/siranovel/num4mechaequation
50
50
  post_install_message:
51
51
  rdoc_options: []