logo

二元巡回群上で定義される微分可能な実関数 📂抽象代数

二元巡回群上で定義される微分可能な実関数

ビルドアップ1

滑らかな 関数 f:RRf : \mathbb{R} \to \mathbb{R}が与えられたとしよう。ffaaでのテイラー級数は次の通りである。

f(x)=f(a)+f(a)(xa)+f(a)2!(xa)2+=f(a)+f(a)(xa)+n=2f(n)(a)n!(xa)n \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*}

上の式は実数空間上で定義された関数について得られたものだが、xxの代わりに双数 a+bϵ=(a,b)a + b\epsilon = (a, b)を代入してみよう。

f(a+bϵ)=f(a)+f(a)(a+bϵa)+n=2f(n)(a)n!(a+bϵa)n=f(a)+f(a)bϵ+n=2f(n)(a)n!bnϵn=f(a)+f(a)bϵ=(f(a),bf(a)) \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*}

ϵ2=0\epsilon^{2} = 0なので、第三項以降はすべて00である。

定義

微分可能な関数 f:RRf : \mathbb{R} \to \mathbb{R}が与えられたとしよう。双数 a+bϵa + b\epsilonについて、f(a+bϵ)f(a + b\epsilon)を次のように定義する。

f(a+bϵ):=(f(a),bf(a))(1) f(a + b\epsilon) := \big( f(a), b f^{\prime}(a) \big) \tag{1}

説明

(1)(1)で表記を濫用abuse of notationしたことに注意すること。(1)(1)の左辺のffは、実際には固定されたffについて次のように定義される関数である。

Ff:{a+bϵ:a,bR}{a+bϵ:a,bR}a+bϵf(a)+bf(a)ϵ=(f(a),bf(a)) \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=0b = 0の場合を考えるとFf(a,0)=(f(a),0)F_{f}(a,0) = (f(a), 0)故にffに対して自然に拡張されたことがわかる。したがって、便宜のためにfFff \equiv F_{f}と表記したことに注意しよう。

実数 xxを双数 (x,1)(x, 1)に拡張して加算や乗算を計算する場合、第二成分で微分係数が保存される。 したがって、上記の定義は微分係数を保存する観点から非常に自然に定義されたことがわかる。

合成関数

合成関数 fgf \circ gについて、fg(a+bϵ)f \circ g (a + b\epsilon)を次のように定義する。

fg(a+bϵ):=f(g(a))+f(g(a))g(a)bϵ=(f(g(a)),bf(g(a))g(a)) 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)

第一成分はfgf \circ gaaでの関数値であり、第二成分は微分係数であることがわかる。

導出

定義(1)(1)通りに計算すればすぐに得られる。

fg(a+bϵ)=f(g(a+bϵ))=f(g(a)+g(a)bϵ)=f(g(a))+f(g(a))g(a)bϵ=(f(g(a)),bf(g(a))g(a)) \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*}

関連リンク


  1. Mykel J. Kochenderfer, Algorithms for Optimization (2019), p27-32 ↩︎