이원수 환 위에서 정의되는 미분가능한 실함수
ビルドアップ1
滑らかな 関数 $f : \mathbb{R} \to \mathbb{R}$が与えられたとしよう。$f$の$a$でのテイラー級数は次の通りである。
$$ \begin{align*} f(x) &= f(a) + f^{\prime}(a)(x - a) + \dfrac{f^{\prime \prime}(a)}{2!}(x - a)^{2} + \cdots \\ &= f(a) + f^{\prime}(a)(x - a) + \sum_{n=2}^{\infty} \dfrac{f^{(n)}(a)}{n!}(x - a)^{n} \end{align*} $$
上の式は実数空間上で定義された関数について得られたものだが、$x$の代わりに双数 $a + b\epsilon = (a, b)$を代入してみよう。
$$ \begin{align*} f(a + b\epsilon) &= f(a) + f^{\prime}(a)(a + b\epsilon - a) + \sum_{n=2}^{\infty} \dfrac{f^{(n)}(a)}{n!}(a + b\epsilon - a)^{n} \\ &= f(a) + f^{\prime}(a)b\epsilon + \sum_{n=2}^{\infty} \dfrac{f^{(n)}(a)}{n!}b^{n}\epsilon^{n} \\ &= f(a) + f^{\prime}(a)b\epsilon \\ &= \big( f(a), b f^{\prime}(a) \big) \end{align*} $$
$\epsilon^{2} = 0$なので、第三項以降はすべて$0$である。
定義
微分可能な関数 $f : \mathbb{R} \to \mathbb{R}$が与えられたとしよう。双数 $a + b\epsilon$について、$f(a + b\epsilon)$を次のように定義する。
$$ f(a + b\epsilon) := \big( f(a), b f^{\prime}(a) \big) \tag{1} $$
説明
$(1)$で表記を濫用abuse of notationしたことに注意すること。$(1)$の左辺の$f$は、実際には固定された$f$について次のように定義される関数である。
$$ \begin{align*} F_{f} : \left\{ a + b\epsilon : a, b \in \mathbb{R} \right\} &\to \left\{ a + b\epsilon : a, b \in \mathbb{R} \right\} \\ a + b\epsilon &\mapsto f(a) + b f^{\prime}(a)\epsilon = \big( f(a), b f^{\prime}(a) \big) \end{align*} $$
しかし、$b = 0$の場合を考えると$F_{f}(a,0) = (f(a), 0)$故に$f$に対して自然に拡張されたことがわかる。したがって、便宜のために$f \equiv F_{f}$と表記したことに注意しよう。
実数 $x$を双数 $(x, 1)$に拡張して加算や乗算を計算する場合、第二成分で微分係数が保存される。 したがって、上記の定義は微分係数を保存する観点から非常に自然に定義されたことがわかる。
合成関数
合成関数 $f \circ g$について、$f \circ g (a + b\epsilon)$を次のように定義する。
$$ f \circ g (a + b\epsilon) := f(g(a)) + f^{\prime}(g(a)) g^{\prime}(a)b\epsilon = \big( f(g(a)), b f^{\prime}(g(a)) g^{\prime}(a) \big) $$
第一成分は$f \circ g$の$a$での関数値であり、第二成分は微分係数であることがわかる。
導出
定義$(1)$通りに計算すればすぐに得られる。
$$ \begin{align*} f \circ g (a + b\epsilon) &= f(g(a + b\epsilon)) \\ &= f(g(a) + g^{\prime}(a)b\epsilon) \\ &= f(g(a)) + f^{\prime}(g(a)) g^{\prime}(a)b\epsilon \\ &= \big( f(g(a)), b f^{\prime}(g(a)) g^{\prime}(a) \big) \end{align*} $$
関連リンク
Mykel J. Kochenderfer, Algorithms for Optimization (2019), p27-32 ↩︎