num4equ 0.1.1 → 0.1.3

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: 0f4d45a4303869d3bc6c7a47da7dddf6cc67f47e6de2f96be6d0e04a2f0fefd0
4
- data.tar.gz: 4c4cc2f0c5c88d016826d5575df652ce113a7c934bf693332eac4e5d8d8a43fa
3
+ metadata.gz: 5cd6930b38ab1be297fc58060fc0eb27e54d97e65708e149849d5f05351a80b3
4
+ data.tar.gz: 86284e474cc156a137bbc0adab3da0be67b6a843a3eb974ba7b9f1460397781b
5
5
  SHA512:
6
- metadata.gz: d897598486152d6fba6a732d36a4d4b725fe99b78b2720c12c43e0bf39d8f0c0e0db2825068c6a2a4c91490f806596279b2b429e3d2e267fe9dd87ee1bf6d498
7
- data.tar.gz: 19c36fde2ef67d634e5bb6c206a94b589ca302cc0d3ddafb3fefea902dac03a0e326b3005b702f6a65fa4e016c26c0a668e2a5fdba627822cb3c1b6a80f2209d
6
+ metadata.gz: e3c4f6c4b5be218bd446afbb01bd9f112156b75393158e3fa3047be904b39353b4eb8bf863391ab8d4fe0fe0cd7ef7caf821e19aa9775c1cabb2fbda80ca0811
7
+ data.tar.gz: 598f7f0ac9301025f25fe9392b4f9bbcfbf865cb958b018ec209d16c631a39d99ecdfc3ed7aa36d83ab6841b33552cb84e2b9ff0a7ba18626ce5c42185fb54b5
data/CHANGELOG.md CHANGED
@@ -2,14 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.1.3] - 2023-08-29
6
+
7
+ ### Changed
8
+ - chg add sample of yardoc
9
+
5
10
  ## [0.1.1] - 2023-05-20
6
11
 
7
12
  ### fixed
8
13
  - fix use definition of derivative for newtonMethod
9
14
 
10
- ### Added
11
- - Add wiki_rui into file of gemspec.
12
-
13
15
  ## [0.0.9] - 2023-04-18
14
16
 
15
17
  ### Added
@@ -56,12 +56,13 @@ static double CNum4Equ_doNewtonMethodFFI(double a, Func func, int *ok)
56
56
  do {
57
57
  double fx;
58
58
  double fxh;
59
- double df;
60
59
 
60
+ // xn_1 = xn - f(x)/f'(x)
61
+ // f'(x) = lim (f(x + h) - f(x)) / h
62
+ // h -> 0
61
63
  fx = func(xn);
62
64
  fxh = func(xn + DX);
63
- df = (fxh - fx) / DX;
64
- xn_1 = xn + -1 * fx / df;
65
+ xn_1 = xn + -1 * DX * fx / (fxh - fx);
65
66
  if (fabs(xn_1 - xn) < EPS) break;
66
67
  xn = xn_1;
67
68
  idx++;
data/lib/num4equ.rb CHANGED
@@ -21,12 +21,19 @@ module Num4EquLib
21
21
  attach_function :secantMethodFFI,
22
22
  :CNum4Equ_secantMethodFFI, [:double, :double, :f, :buffer_out], :double
23
23
  class << self
24
+ # ニュートン法による解法
25
+ #
24
26
  # @overload newtonMethod(a, func)
25
- # ニュートン法による解法
26
27
  # @param [double] a aの値
27
28
  # @param [callback] func aに対する値を計算
28
29
  # @return [double] xの値
29
30
  # @raise RangeError
31
+ # @example
32
+ # f1 = proc {|x|
33
+ # next x * x - 2
34
+ # }
35
+ # x = Num4EquLib.newtonMethod(-1.8, f1)
36
+ #
30
37
  def newtonMethod(a, func)
31
38
  ok_ptr = FFI::MemoryPointer.new :int
32
39
  x = newtonMethodFFI(a, func, ok_ptr)
@@ -37,13 +44,19 @@ module Num4EquLib
37
44
  end
38
45
  return x
39
46
  end
47
+ # 二分法による解法
48
+ #
40
49
  # @overload bisection(a, b, func)
41
- # 二分法による解法
42
50
  # @param [double] a aの値
43
51
  # @param [double] b bの値
44
52
  # @param [callback] func aに対する値を計算
45
53
  # @return [double] xの値
46
54
  # @raise RangeError
55
+ # @example
56
+ # f1 = proc {|x|
57
+ # next x * x - 2
58
+ # }
59
+ # x = Num4EquLib.bisectionMethod(-3, -1, f1)
47
60
  def bisectionMethod(a, b, func)
48
61
  ok_ptr = FFI::MemoryPointer.new :int
49
62
  x = bisectionMethodFFI(a, b, func, ok_ptr)
@@ -54,13 +67,19 @@ module Num4EquLib
54
67
  end
55
68
  return x
56
69
  end
70
+ # 割線法による解法
71
+ #
57
72
  # @overload secantMethod(a, b, func)
58
- # 割線法による解法
59
73
  # @param [double] a aの値
60
74
  # @param [double] b bの値
61
75
  # @param [callback] func aに対する値を計算
62
76
  # @return [double] xの値
63
77
  # @raise RangeError
78
+ # @example
79
+ # f1 = proc {|x|
80
+ # next x * x - 2
81
+ # }
82
+ # x = Num4EquLib.secantMethod(-1, 3, f1)
64
83
  def secantMethod(a, b, func)
65
84
  ok_ptr = FFI::MemoryPointer.new :int
66
85
  x = secantMethodFFI(a, b, func, ok_ptr)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4equ
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
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-20 00:00:00.000000000 Z
11
+ date: 2023-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-compiler
@@ -69,7 +69,7 @@ licenses:
69
69
  - MIT
70
70
  metadata:
71
71
  changelog_uri: http://github.com/siranovel/num4equation/blob/main/CHANGELOG.md
72
- documentation_uri: https://rubydoc.info/gems/num4equ/0.1.1
72
+ documentation_uri: https://rubydoc.info/gems/num4equ/0.1.3
73
73
  homepage_uri: http://github.com/siranovel/num4equation
74
74
  wiki_uri: https://github.com/siranovel/mydocs/tree/main/num4equation
75
75
  post_install_message: