#Calc 1.1.4 その 3
今日は正数の自然対数を求めるルーチンを実装。自然対数の計算は逆双曲線正接の計算に帰着させるので、そのルーチンも実装した。
アルゴリズムの概略:
- tanh-1(x) = x1/1 + x3/3 + x5/5 + x7/7 + …
- log(x) = 2 tanh-1((x - 1) / (x + 1))
- 以下の公式を利用して、実際に対数を求める値を 1 に近付け、収束を速くする:
- log(x * 10y) = log(x) + y * log(10)
- log(x * 2y) = log(x) + y * log(2)
-
log(10) と log(2) の値は何度も使うのでキャッシュしておく。ただし、直接求めると収束が遅いので以下の公式を使う:
- log(2) = log(1.024) + 3 * log(1.25)
- log(10) = 3 * log(1.024) + 10 * log(1.25)
| 固定リンク

コメント