らでぃっくすを底とする log その2

log a = log(a / 10) + 1
log a = 2 * log( sqrt a )
log a = ln a / ln 10

ln 10 の値は 2.302585093

log 123 と log 0.123 を求めてみる。

log 123   = (log 1.23) + 2
log 0.123 = (log 1.23) - 1

なので、結局 log 1.23 を求めればいいことになる??
ワケが分からないのでやってみた:

puts "log 123      = #{Math.log10(123)}"
puts "log 0.123    = #{Math.log10(0.123)}"
puts "log 1.23     = #{Math.log10(1.23)}"
puts
puts "log 1.23 + 2 = #{Math.log10(1.23) + 2}"
puts "log 1.23 - 1 = #{Math.log10(1.23) - 1}"
log 123      = 2.0899051114394
log 0.123    = -0.910094888560602
log 1.23     = 0.0899051114393979

log 1.23 + 2 = 2.0899051114394
log 1.23 - 1 = -0.910094888560602

そーいうことかー。

次に、sqrt 1.23 を求めてく。
例えば 5 回 sqrt すると…

sqrt sqrt sqrt sqrt sqrt 1.23 = 1.006490163

自然対数 log x は、x > 0 の時、
foo x = (x - 1) / (x + 1) とすると:

2 { ( (x + 1) / (3 * x ** 3 + 1) ) / (5 * x ** 5) ... }

ってな級数で表すことができるらすい。
なんだよ級数ってよー。

http://ja.wikibooks.org/wiki/%E8%A7%A3%E6%9E%90%E5%AD%A6%E5%9F%BA%E7%A4%8E/%E7%B4%9A%E6%95%B0

数列の和か〜。
Haskell で云うとこんな感じ?

series r n = (r ** n) + series r (n + 1)

忘れたけどこんな感じでいいんだっけか?
原理は分かったけど、じぇんじぇんわからん。
Haskell とか、プログラムで書けよ〜〜〜〜
\(^o^)/オワタ