num4diff 0.4.3 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6149200658f494c188c57a669cd8bf2ae8c758228ab43fbdf5eaa5c936f13957
4
- data.tar.gz: ab3f4902560d4527cac3ed1f8770b1aad1d245194fe87e375a5d218b8cdad1da
3
+ metadata.gz: fc6954bb9f3eb7e7b35429c7f4429aa60f5a998ce1934dbe79b0117ae1013a51
4
+ data.tar.gz: 3caa0e4e7b083a435b374c0739134ac583ab149f30306327783cf239896c263b
5
5
  SHA512:
6
- metadata.gz: 30e9c6762756c3ea9a88b8a89b3db0bcc91a6770c831eaac165ebed648a51d61d78968a2a11df1425d2b7e4f601cacab950a7f1da88eb642d9ecd5683a60bd6f
7
- data.tar.gz: c027beb0e8652d3ffa0d1d47e4af677bb5ffef139591ea8b7c3cd6dcd9ac40010983e7b2841d94551a8ecb81f5a4de43de46a565f8d6bb4369a027d924938576
6
+ metadata.gz: b9e5780c5bbfecb0dd284e561775f78a8cff1530194817f4ac58f22db6f0103e851558a548e3cf04d54e4f4d009a2cad2508d1f5bb6a2e2cf33f8aa59a50174e
7
+ data.tar.gz: 2d4736748fa20f35f7ba11fa0e614f165d9b30a73038d4942262c30f3951d33db45bf0ffb46970197b45e3d98e51d639365a3845e69a8ebc52c4db309be9569b
data/CHANGELOG.md ADDED
@@ -0,0 +1,62 @@
1
+ # Change Log
2
+
3
+ ## Unreleased
4
+
5
+ ## [0.4.5] - 2023-04-14
6
+
7
+ ### Fixed
8
+ - Fix function of adamsBashforthMethod
9
+ - Fix function of adamsMoultonMethod
10
+
11
+ ## [0.4.4] - 2023-04-11
12
+
13
+ ### Added
14
+ - Add file of CHANGELOG.md
15
+
16
+ ## [0.4.3] - 2023-04-10
17
+
18
+ ### Added
19
+ - Add function of adamsBashforthMethod アダムス・バッシュフォース法(3段)
20
+ - Add function of adamsMoultonMethod アダムス・ムルトン法(3段)
21
+
22
+ ## [0.4.1] - 2023-03-26
23
+
24
+ ### Fixed
25
+ - Fix from add_runtime_dependency 'ffi-compiler'
26
+ to add_development_dependency 'ffi-compiler'
27
+
28
+ ## [0.3.14] - 2023-02-21
29
+
30
+ ### Added
31
+ - Add file of Gemfile.
32
+
33
+ ## [0.3.4] - 2023-02-18
34
+
35
+ ### Changed
36
+ - @overload
37
+
38
+ ## [0.1.3] - 2022-04-15
39
+
40
+ ### Changed
41
+ - fix from ffi to ffi-compiler
42
+
43
+ ## [0.0.22] - 2022-04-05
44
+
45
+ ### Added
46
+ - Add yardoc
47
+
48
+ ## [0.0.20] - 2022-03-25
49
+
50
+ ### Added
51
+ - Add file of LICENSE.
52
+
53
+ ### Changed
54
+ - chg comment
55
+
56
+ ## [0.0.17] - 2022-03-23
57
+
58
+ ### Fixed
59
+ - fix first fixed.
60
+
61
+
62
+
@@ -6,8 +6,8 @@
6
6
  static double CNum4Diff_doEulerMethod(double yi, double xi, double h, Func func);
7
7
  static double CNum4Diff_doHeunMethod(double yi, double xi, double h, Func func);
8
8
  static double CNum4Diff_doRungeKuttaMethod(double yi, double xi, double h, Func func);
9
- static double CNum4Diff_doAdamsBashforthMethod(double a, double b, double yi, double h, Func func);
10
- static double CNum4Diff_doAdamsMoultonMethod(double a, double b, double yi, double h, Func func);
9
+ static double CNum4Diff_doAdamsBashforthMethod(double a, double b, double y0, double h, Func func);
10
+ static double CNum4Diff_doAdamsMoultonMethod(double a, double b, double y0, double h, Func func);
11
11
  static CNum4Diff _cNum4Diff = {
12
12
  .FP_eulerMethod = CNum4Diff_doEulerMethod,
13
13
  .FP_heunMethod = CNum4Diff_doHeunMethod,
@@ -39,19 +39,19 @@ double CNum4Diff_rungeKuttaMethod(double yi, double xi, double h, Func func)
39
39
 
40
40
  return _cNum4Diff.FP_rungeKuttaMethod(yi, xi, h, func);
41
41
  }
42
- double CNum4Diff_adamsBashforthMethod(double a, double b, double yi, double h, Func func)
42
+ double CNum4Diff_adamsBashforthMethod(double a, double b, double y0, double h, Func func)
43
43
  {
44
44
  assert(func != 0);
45
45
  assert(a < b);
46
46
 
47
- return _cNum4Diff.FP_adamsBashforthMethod(a, b, yi, h, func);
47
+ return _cNum4Diff.FP_adamsBashforthMethod(a, b, y0, h, func);
48
48
  }
49
- double CNum4Diff_adamsMoultonMethod(double a, double b, double yi, double h, Func func)
49
+ double CNum4Diff_adamsMoultonMethod(double a, double b, double y0, double h, Func func)
50
50
  {
51
51
  assert(func != 0);
52
52
  assert(a < b);
53
53
 
54
- return _cNum4Diff.FP_adamsMoultonMethod(a, b, yi, h, func);
54
+ return _cNum4Diff.FP_adamsMoultonMethod(a, b, y0, h, func);
55
55
  }
56
56
  /**************************************/
57
57
  /* 処理実行部 */
@@ -99,15 +99,15 @@ static double CNum4Diff_doRungeKuttaMethod(double yi, double xi, double h, Func
99
99
  /*
100
100
  * アダムス・バッシュフォース法(3段)
101
101
  */
102
- static double CNum4Diff_doAdamsBashforthMethod(double a, double b, double yi, double h, Func func)
102
+ static double CNum4Diff_doAdamsBashforthMethod(double a, double b, double y0, double h, Func func)
103
103
  {
104
104
  double xi = a;
105
105
  double fi;
106
106
  double fi1 = 0;
107
107
  double fi2 = 0;
108
- double y = yi;
108
+ double y = 0.0;
109
109
 
110
- fi2 = yi;
110
+ fi2 = y0;
111
111
  xi = xi + h;
112
112
  fi1 = CNum4Diff_rungeKuttaMethod(fi2, xi, h, func);
113
113
  y = fi1;
@@ -122,21 +122,23 @@ static double CNum4Diff_doAdamsBashforthMethod(double a, double b, double yi, do
122
122
  /*
123
123
  * アダムス・ムルトン法(3段)
124
124
  */
125
- static double CNum4Diff_doAdamsMoultonMethod(double a, double b, double yi, double h, Func func)
125
+ static double CNum4Diff_doAdamsMoultonMethod(double a, double b, double y0, double h, Func func)
126
126
  {
127
127
  double xi = a;
128
128
  double fi;
129
129
  double fi1 = 0;
130
130
  double fi2 = 0;
131
- double y = yi;
131
+ double y_pred = 0.0;
132
+ double y = 0.0;
132
133
 
133
- fi2 = CNum4Diff_rungeKuttaMethod(yi, xi, h, func);
134
+ fi2 = y0;
134
135
  xi = xi + h;
135
136
  fi1 = CNum4Diff_rungeKuttaMethod(fi2, xi, h, func);
136
137
  y = fi1;
137
138
  for (xi = xi + h; xi < b; xi += h) {
138
139
  fi = CNum4Diff_rungeKuttaMethod(fi1, xi, h, func);
139
- y = y + h * (5 * fi + 8 * fi1 -1 * fi2) / 12.0;
140
+ y_pred = y + h * (23 * fi - 16 * fi1 + 5 * fi2) / 12.0;
141
+ y = y + h * (5 * y_pred + 8 * fi -1 * fi1) / 12.0;
140
142
  fi2 = fi1;
141
143
  fi1 = fi;
142
144
  }
@@ -12,8 +12,8 @@ struct _CNum4Diff
12
12
  double (*FP_eulerMethod)(double yi, double xi, double h, Func func);
13
13
  double (*FP_heunMethod)(double yi, double xi, double h, Func func);
14
14
  double (*FP_rungeKuttaMethod)(double yi, double xi, double h, Func func);
15
- double (*FP_adamsBashforthMethod)(double a, double b, double yi, double h, Func func);
16
- double (*FP_adamsMoultonMethod)(double a, double b, double yi, double h, Func func);
15
+ double (*FP_adamsBashforthMethod)(double a, double b, double y0, double h, Func func);
16
+ double (*FP_adamsMoultonMethod)(double a, double b, double y0, double h, Func func);
17
17
  ;
18
18
  };
19
19
  /**************************************/
@@ -25,6 +25,6 @@ struct _CNum4Diff
25
25
  double CNum4Diff_eulerMethod(double yi, double xi, double h, Func func);
26
26
  double CNum4Diff_heunMethod(double yi, double xi, double h, Func func);
27
27
  double CNum4Diff_rungeKuttaMethod(double yi, double xi, double h, Func func);
28
- double CNum4Diff_adamsBashforthMethod(double a, double b, double yi, double h, Func func);
29
- double CNum4Diff_adamsMoultonMethod(double a, double b, double yi, double h, Func func);
28
+ double CNum4Diff_adamsBashforthMethod(double a, double b, double y0, double h, Func func);
29
+ double CNum4Diff_adamsMoultonMethod(double a, double b, double y0, double h, Func func);
30
30
  #endif
data/lib/num4diff.rb CHANGED
@@ -53,25 +53,25 @@ module Num4DiffLib
53
53
  :CNum4Diff_rungeKuttaMethod, [:double, :double, :double, :f], :double
54
54
  #
55
55
  # アダムス・バッシュフォース法(3段)による数値計算
56
- # @overload adamsBashforthMethod(a, b, yi, h, func)
56
+ # @overload adamsBashforthMethod(a, b, y0, h, func)
57
57
  # @param [double] a 下限値
58
58
  # @param [double] b 上限値
59
- # @param [double] yi xiに対するyiの値
59
+ # @param [double] y0 y(x0=a)の値
60
60
  # @param [double] h 刻み幅
61
61
  # @param [callback] func xiに対する傾きを計算する関数
62
- # @return [double] xi+hに対するyi_1の値
62
+ # @return [double] [a,b]の積分値
63
63
  #
64
64
  attach_function :adamsBashforthMethod,
65
65
  :CNum4Diff_adamsBashforthMethod, [:double, :double, :double, :double, :f], :double
66
66
  #
67
67
  # アダムス・ムルトン法(3段)による数値計算
68
- # @overload adamsMoultonMethod(yi, xi, h, func)
68
+ # @overload adamsMoultonMethod(a, b, y0, xi, h, func)
69
69
  # @param [double] a 下限値
70
70
  # @param [double] b 上限値
71
- # @param [double] yi xiに対するyiの値
71
+ # @param [double] y0 y0 y(x0=a)の値
72
72
  # @param [double] h 刻み幅
73
73
  # @param [callback] func xiに対する傾きを計算する関数
74
- # @return [double] xi+hに対するyi_1の値
74
+ # @return [double] [a,b]の積分値
75
75
  #
76
76
  attach_function :adamsMoultonMethod,
77
77
  :CNum4Diff_adamsMoultonMethod, [:double, :double, :double, :double, :f], :double
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-09 00:00:00.000000000 Z
11
+ date: 2023-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-compiler
@@ -57,9 +57,9 @@ extensions:
57
57
  - ext/num4diff/Rakefile
58
58
  extra_rdoc_files: []
59
59
  files:
60
+ - CHANGELOG.md
60
61
  - Gemfile
61
62
  - LICENSE
62
- - README.md
63
63
  - ext/num4diff/CNum4Diff.c
64
64
  - ext/num4diff/CNum4Diff.h
65
65
  - ext/num4diff/Rakefile
@@ -67,7 +67,9 @@ files:
67
67
  homepage: http://github.com/siranovel/num4different
68
68
  licenses:
69
69
  - MIT
70
- metadata: {}
70
+ metadata:
71
+ changelog_uri: http://github.com/siranovel/num4different/blob/main/CHANGELOG.md
72
+ homepage_uri: http://github.com/siranovel/num4different
71
73
  post_install_message:
72
74
  rdoc_options: []
73
75
  require_paths:
data/README.md DELETED
@@ -1,42 +0,0 @@
1
- num4different
2
- =============
3
- 数値計算による常微分方程式を解くFFI
4
-
5
- ## decscription ##
6
- ![num4diff](images/ucNumDiff.jpg)
7
-
8
- 詳細は、https://siranovel.github.io/mydocs/num4different
9
-
10
- ## Demo ##
11
-
12
- ## VS. ##
13
-
14
- ## Requirement ##
15
- ruby FFIライブラリ
16
-
17
- ## Usage ##
18
- sample/samplez.rb ファイル参照
19
-
20
- ## install ##
21
-
22
- From rubygems:
23
- ~~~
24
- [sudo] gem install num4diff
25
- ~~~
26
-
27
- or from the git repository on github:
28
- ~~~
29
- git clone https://github.com/siranovel/num4different.git
30
- cd num4different
31
- jruby -S gem build *.gemspec
32
- jruby -S gem install num4diff
33
- ~~~
34
-
35
- ## Contribution ##
36
-
37
- ## Licence ##
38
- [MIT](LICENSE)
39
-
40
- ## Author ##
41
-
42
- [siranovel](https://github.com/siranovel)