らでぃっくすを底とする 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^)/オワタ