num4diff 0.4.4 → 0.4.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 459519c218ccc304f0c9faf97dc76448addcba5505e507a78d6a54544c95766c
4
- data.tar.gz: 0727aba63582a07844f6fc3d8340cea6c51ed231e4829a41620be0946a502fff
3
+ metadata.gz: fc6954bb9f3eb7e7b35429c7f4429aa60f5a998ce1934dbe79b0117ae1013a51
4
+ data.tar.gz: 3caa0e4e7b083a435b374c0739134ac583ab149f30306327783cf239896c263b
5
5
  SHA512:
6
- metadata.gz: 2b78c27839fc39912994c26f11cc1500afbdbb5239fa5cef3adcdc2eb801feb934d005ec25f8c8e5150a5a654b48083f66bc9ddcfe4af338fb7507d59d670013
7
- data.tar.gz: 2a1c335d8f477688a96a05b1288546d6acea5694e7b3c3c29804c6eb91804db0e6c6bee3db26f01d2ea61e8afec8e208c30ace67059a077ac4edb584c51ad29e
6
+ metadata.gz: b9e5780c5bbfecb0dd284e561775f78a8cff1530194817f4ac58f22db6f0103e851558a548e3cf04d54e4f4d009a2cad2508d1f5bb6a2e2cf33f8aa59a50174e
7
+ data.tar.gz: 2d4736748fa20f35f7ba11fa0e614f165d9b30a73038d4942262c30f3951d33db45bf0ffb46970197b45e3d98e51d639365a3845e69a8ebc52c4db309be9569b
data/CHANGELOG.md CHANGED
@@ -2,10 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.4.5] - 2023-04-14
6
+
7
+ ### Fixed
8
+ - Fix function of adamsBashforthMethod
9
+ - Fix function of adamsMoultonMethod
10
+
5
11
  ## [0.4.4] - 2023-04-11
6
12
 
7
13
  ### Added
8
- - Add CHANGELOG.md
14
+ - Add file of CHANGELOG.md
9
15
 
10
16
  ## [0.4.3] - 2023-04-10
11
17
 
@@ -16,8 +22,8 @@
16
22
  ## [0.4.1] - 2023-03-26
17
23
 
18
24
  ### Fixed
19
- - Fix from add_runtime_dependency 'rake'
20
- to add_development_dependency 'rake'
25
+ - Fix from add_runtime_dependency 'ffi-compiler'
26
+ to add_development_dependency 'ffi-compiler'
21
27
 
22
28
  ## [0.3.14] - 2023-02-21
23
29
 
@@ -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(a, b, 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.4
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-10 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
@@ -68,7 +68,8 @@ homepage: http://github.com/siranovel/num4different
68
68
  licenses:
69
69
  - MIT
70
70
  metadata:
71
- changelog_uri: http://github.com/siranovel/num4different/blob/master/CHANGELOG.md
71
+ changelog_uri: http://github.com/siranovel/num4different/blob/main/CHANGELOG.md
72
+ homepage_uri: http://github.com/siranovel/num4different
72
73
  post_install_message:
73
74
  rdoc_options: []
74
75
  require_paths: