対数関数と指数関数 lim h!0 loga(x + h) loga(x) h • logの微分 = lim h!0 1 h loga ✓ x + h x ◆ = lim h!0 1 h loga ✓ 1 + h x ◆ = lim n!1 n x loga ✓ 1 + 1 n ◆ h x = 1 n と置く
対数関数と指数関数 lim h!0 loga(x + h) loga(x) h • logの微分 = lim h!0 1 h loga ✓ x + h x ◆ = lim h!0 1 h loga ✓ 1 + h x ◆ = lim n!1 n x loga ✓ 1 + 1 n ◆ h x = 1 n と置く = 1 x lim n!1 loga ✓ 1 + 1 n ◆n = 1 x loga lim n!1 ✓ 1 + 1 n ◆n
対数関数と指数関数 lim h!0 loga(x + h) loga(x) h • logの微分 = lim n!1 n x loga ✓ 1 + 1 n ◆ h x = 1 n と置く = 1 x lim n!1 loga ✓ 1 + 1 n ◆n = 1 x loga lim n!1 ✓ 1 + 1 n ◆n = lim h!0 1 h loga ✓ 1 + h x ◆ = lim h!0 1 h loga ✓ x + h x ◆ e
指数関数の実装 • を展開してみる ex ex = lim n !1 ⇣ 1 + x n ⌘ n = lim n!1 ⇣ 1 + x n ⌘ ⇣ 1 + x n ⌘ ⇣ 1 + x n ⌘ · · · = lim n!1 1n + nC11n 1 ⇣ x n ⌘1 + nC21n 2 ⇣ x n ⌘2 · · · = lim n!1 1 + nC1 1 n x + nC2 1 n 2 x 2 · · ·
• を展開してみる ex ex = lim n !1 ⇣ 1 + x n ⌘ n = lim n!1 ⇣ 1 + x n ⌘ ⇣ 1 + x n ⌘ ⇣ 1 + x n ⌘ · · · = lim n!1 1n + nC11n 1 ⇣ x n ⌘1 + nC21n 2 ⇣ x n ⌘2 · · · = lim n!1 1 + nC1 1 n x + nC2 1 n 2 x 2 · · · = 1 + x 1! + x 2 2! · · · ✓ lim n!1 nCk 1 nk = 1 k! ◆ 指数関数の実装
• • の周りでテイラー展開した結果と同じ • テイラー展開 x = 0 ex = 1 + x 1! + x 2 2! + · · · f ( x ) = f ( a ) + f 0( a ) 1! ( x a ) + f 00( a ) 2! ( x a )2 + · · · 指数関数の実装 • この形であれば実装できそう • もちろん無限回計算は不可能。途中で打ち切る
• は浮動小数点数の表現 • 任意の実数 における と を求めるのは簡単 • 例えば なら • という風に分解する • と分解できる 対数関数の実装 log x = log(c · 2 n ) = log c + n log 2 x = c · 2n (0 < c < 2) 予め計算して定数として保持しておける log 2 = 0 . 6931 · · · なのでテイラー展開可能 0 < c < 2 c · 2n x c n x = 10 c = 1.25, n = 3