diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 15:59:18 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 15:59:18 +0000 |
commit | 72113d58cd2fc62b3f4ef3d2eb6cec37393532a4 (patch) | |
tree | 534843caaea28f1171378c1ac5bea0184ed04054 /ruby_2_2/ext/bigdecimal/sample | |
parent | 1a74fa4b04da04bd2bb33103dd3cf431438df38e (diff) | |
parent | 02b8978ff10b05304dbb46d73b49a2cf3a87cb92 (diff) |
add tag v2_2_9v2_2_9
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v2_2_9@61259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_2_2/ext/bigdecimal/sample')
-rw-r--r-- | ruby_2_2/ext/bigdecimal/sample/linear.rb | 72 | ||||
-rw-r--r-- | ruby_2_2/ext/bigdecimal/sample/nlsolve.rb | 39 | ||||
-rw-r--r-- | ruby_2_2/ext/bigdecimal/sample/pi.rb | 20 |
3 files changed, 0 insertions, 131 deletions
diff --git a/ruby_2_2/ext/bigdecimal/sample/linear.rb b/ruby_2_2/ext/bigdecimal/sample/linear.rb deleted file mode 100644 index a33255f591..0000000000 --- a/ruby_2_2/ext/bigdecimal/sample/linear.rb +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/local/bin/ruby - -# -# linear.rb -# -# Solves linear equation system(A*x = b) by LU decomposition method. -# where A is a coefficient matrix,x is an answer vector,b is a constant vector. -# -# USAGE: -# ruby linear.rb [input file solved] -# - -# :stopdoc: -require "bigdecimal" -require "bigdecimal/ludcmp" - -# -# NOTE: -# Change following BigDecimal.limit() if needed. -BigDecimal.limit(100) -# - -include LUSolve -def rd_order(na) - printf("Number of equations ?") if(na <= 0) - n = ARGF.gets().to_i -end - -na = ARGV.size -zero = BigDecimal.new("0.0") -one = BigDecimal.new("1.0") - -while (n=rd_order(na))>0 - a = [] - as= [] - b = [] - if na <= 0 - # Read data from console. - printf("\nEnter coefficient matrix element A[i,j]\n"); - for i in 0...n do - for j in 0...n do - printf("A[%d,%d]? ",i,j); s = ARGF.gets - a << BigDecimal.new(s); - as << BigDecimal.new(s); - end - printf("Contatant vector element b[%d] ? ",i); b << BigDecimal.new(ARGF.gets); - end - else - # Read data from specified file. - printf("Coefficient matrix and constant vector.\n"); - for i in 0...n do - s = ARGF.gets - printf("%d) %s",i,s) - s = s.split - for j in 0...n do - a << BigDecimal.new(s[j]); - as << BigDecimal.new(s[j]); - end - b << BigDecimal.new(s[n]); - end - end - x = lusolve(a,b,ludecomp(a,n,zero,one),zero) - printf("Answer(x[i] & (A*x-b)[i]) follows\n") - for i in 0...n do - printf("x[%d]=%s ",i,x[i].to_s) - s = zero - for j in 0...n do - s = s + as[i*n+j]*x[j] - end - printf(" & %s\n",(s-b[i]).to_s) - end -end diff --git a/ruby_2_2/ext/bigdecimal/sample/nlsolve.rb b/ruby_2_2/ext/bigdecimal/sample/nlsolve.rb deleted file mode 100644 index 7fa921c2c3..0000000000 --- a/ruby_2_2/ext/bigdecimal/sample/nlsolve.rb +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/local/bin/ruby - -# -# nlsolve.rb -# An example for solving nonlinear algebraic equation system. -# - -require "bigdecimal" -require "bigdecimal/newton" -include Newton - -class Function # :nodoc: all - def initialize() - @zero = BigDecimal.new("0.0") - @one = BigDecimal.new("1.0") - @two = BigDecimal.new("2.0") - @ten = BigDecimal.new("10.0") - @eps = BigDecimal.new("1.0e-16") - end - def zero;@zero;end - def one ;@one ;end - def two ;@two ;end - def ten ;@ten ;end - def eps ;@eps ;end - def values(x) # <= defines functions solved - f = [] - f1 = x[0]*x[0] + x[1]*x[1] - @two # f1 = x**2 + y**2 - 2 => 0 - f2 = x[0] - x[1] # f2 = x - y => 0 - f <<= f1 - f <<= f2 - f - end -end - -f = BigDecimal.limit(100) -f = Function.new -x = [f.zero,f.zero] # Initial values -n = nlsolve(f,x) -p x diff --git a/ruby_2_2/ext/bigdecimal/sample/pi.rb b/ruby_2_2/ext/bigdecimal/sample/pi.rb deleted file mode 100644 index 2f7dd27d60..0000000000 --- a/ruby_2_2/ext/bigdecimal/sample/pi.rb +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/local/bin/ruby - -# -# pi.rb -# -# Calculates 3.1415.... (the number of times that a circle's diameter -# will fit around the circle) using J. Machin's formula. -# - -require "bigdecimal" -require "bigdecimal/math.rb" - -include BigMath - -if ARGV.size == 1 - print "PI("+ARGV[0]+"):\n" - p PI(ARGV[0].to_i) -else - print "TRY: ruby pi.rb 1000 \n" -end |