Unityと数学の学習帳

Unityと数学の同時学習を目的としたブログ(個人的メモ帳:勉強中なので正確性はない)

P190 Bスプライン

資料:ゲームアプリの数学P190参照
Bスプライン基底関数は以下になる


\displaystyle B\left( t \right) =\sum _{ i=0 }^{ n }{ { N }_{ i,k }\left( t \right) { P }_{ i } }

\displaystyle { N }_{ i,1 }\left( t \right)=\begin{cases} 1\left( { x }_{ i }\le t<{ x }_{ i+1 } \right)  \\ 0\left( t<{ x }_{ i },{ x }_{ i+1 } <t\right)   \end{cases}  \cdots ①

\displaystyle { N }_{ i,k }\left( t \right) =\frac { t-{ x }_{ i } }{ { x }_{ i+k-1 }-{ x }_{ i } } { N }_{ i,k-1 }\left( t \right) +\frac { { x }_{ i+k }-t }{ { x }_{ i+k }-{ x }_{ i+1 } } { N }_{ i+1,k-1 }\left( t \right) \cdots ②


①は条件式。②はブレンド機能を持つ再帰関数でド・ブーアのアルゴリズムと呼ばれるもの。

②の関数は扱うBスプラインの次数だけ総和計算され階数により再帰的に呼び出される
したがって3次のBスプラインの場合

{ p }_{ 0 }~{ p }_{ 3 } 制御点4で n=3
階数 k=3+1=4


\displaystyle B\left( t \right) =\sum _{ i=0 }^{ 3 }{ { N }_{ i,4 }\left( t \right) { P }_{ i } } ={ N }_{ 0,4 }\left( t \right) { P }_{ 0 }+{ N }_{ 1,4 }\left( t \right) { P }_{ 1 }+{ N }_{ 2,4 }\left( t \right) { P }_{ 2 }+{ N }_{ 3,4 }\left( t \right) { P }_{ 3 }


となる。②を階数4を想定して再帰関数を展開すると


\displaystyle{ N }_{ i,k }\left( t \right) =\frac { t-{ x }_{ i } }{ { x }_{ i+k-1 }-{ x }_{ i } } { N }_{ i,k-1 }\left( t \right) +\frac { { x }_{ i+k }-t }{ { x }_{ i+k }-{ x }_{ i+1 } } { N }_{ i+1,k-1 }\left( t \right) \\ \displaystyle=\frac { t-{ x }_{ i } }{ { x }_{ i+k-1 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+k-2 }-{ x }_{ i } } { N }_{ i,k-2 }\left( t \right) +\frac { { x }_{ i+k-1 }-t }{ { x }_{ i+k-1 }-{ x }_{ i+1 } } { N }_{ i+1,k-2 }\left( t \right)  \right) +\frac { { x }_{ i+k }-t }{ { x }_{ i+k }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+k-2 }-{ x }_{ i+1 } } { N }_{ i+1,k-2 }\left( t \right) +\frac { { x }_{ i+1+k-1 }-t }{ { x }_{ i+1+k-1 }-{ x }_{ i+2 } } { N }_{ i+2,k-2 }\left( t \right)  \right) \\ \displaystyle=\frac { t-{ x }_{ i } }{ { x }_{ i+k-1 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+k-2 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+k-3 }-{ x }_{ i } } { N }_{ i,k-3 }\left( t \right) +\frac { { x }_{ i+k-2 }-t }{ { x }_{ i+k-2 }-{ x }_{ i+1 } } { N }_{ i+1,k-3 }\left( t \right)  \right) +\frac { { x }_{ i+k-1 }-t }{ { x }_{ i+k-1 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+k-3 }-{ x }_{ i+1 } } { N }_{ i+1,k-3 }\left( t \right) +\frac { { x }_{ i+1+k-2 }-t }{ { x }_{ i+1+k-2 }-{ x }_{ i+2 } } { N }_{ i+2,k-3 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ i+k }-t }{ { x }_{ i+k }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+k-2 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+k-3 }-{ x }_{ i+1 } } { N }_{ i+1,k-3 }\left( t \right) +\frac { { x }_{ i+1+k-2 }-t }{ { x }_{ i+1+k-2 }-{ x }_{ i+2 } } { N }_{ i+2,k-3 }\left( t \right)  \right) +\frac { { x }_{ i+1+k-1 }-t }{ { x }_{ i+1+k-1 }-{ x }_{ i+2 } } \left( \frac { t-{ x }_{ i+2 } }{ { x }_{ i+2+k-3 }-{ x }_{ i+2 } } { N }_{ i+2,k-3 }\left( t \right) +\frac { { x }_{ i+2+k-2 }-t }{ { x }_{ i+2+k-2 }-{ x }_{ i+3 } } { N }_{ i+3,k-3 }\left( t \right)  \right)  \right)


k=4にする


\displaystyle { N }_{ i,4 }\left( t \right) =\frac { t-{ x }_{ i } }{ { x }_{ i+4-1 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+4-2 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+4-3 }-{ x }_{ i } } { N }_{ i,4-3 }\left( t \right) +\frac { { x }_{ i+4-2 }-t }{ { x }_{ i+4-2 }-{ x }_{ i+1 } } { N }_{ i+1,4-3 }\left( t \right)  \right) +\frac { { x }_{ i+4-1 }-t }{ { x }_{ i+4-1 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+4-3 }-{ x }_{ i+1 } } { N }_{ i+1,4-3 }\left( t \right) +\frac { { x }_{ i+1+4-2 }-t }{ { x }_{ i+1+4-2 }-{ x }_{ i+2 } } { N }_{ i+2,4-3 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ i+4 }-t }{ { x }_{ i+4 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+4-2 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+1+4-3 }-{ x }_{ i+1 } } { N }_{ i+1,4-3 }\left( t \right) +\frac { { x }_{ i+1+4-2 }-t }{ { x }_{ i+1+4-2 }-{ x }_{ i+2 } } { N }_{ i+2,4-3 }\left( t \right)  \right) +\frac { { x }_{ i+1+4-1 }-t }{ { x }_{ i+1+4-1 }-{ x }_{ i+2 } } \left( \frac { t-{ x }_{ i+2 } }{ { x }_{ i+2+4-3 }-{ x }_{ i+2 } } { N }_{ i+2,4-3 }\left( t \right) +\frac { { x }_{ i+2+4-2 }-t }{ { x }_{ i+2+4-2 }-{ x }_{ i+3 } } { N }_{ i+3,4-3 }\left( t \right)  \right)  \right)


まとめると


\displaystyle { N }_{ i,4 }\left( t \right) =\frac { t-{ x }_{ i } }{ { x }_{ i+3 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+2 }-{ x }_{ i } } \left( \frac { t-{ x }_{ i } }{ { x }_{ i+1 }-{ x }_{ i } } { N }_{ i,1 }\left( t \right) +\frac { { x }_{ i+2 }-t }{ { x }_{ i+2 }-{ x }_{ i+1 } } { N }_{ i+1,1 }\left( t \right)  \right) +\frac { { x }_{ i+3 }-t }{ { x }_{ i+3 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+2 }-{ x }_{ i+1 } } { N }_{ i+1,1 }\left( t \right) +\frac { { x }_{ i+3 }-t }{ { x }_{ i+3 }-{ x }_{ i+2 } } { N }_{ i+2,1 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ i+4 }-t }{ { x }_{ i+4 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+3 }-{ x }_{ i+1 } } \left( \frac { t-{ x }_{ i+1 } }{ { x }_{ i+2 }-{ x }_{ i+1 } } { N }_{ i+1,1 }\left( t \right) +\frac { { x }_{ i+3 }-t }{ { x }_{ i+3 }-{ x }_{ i+2 } } { N }_{ i+2,1 }\left( t \right)  \right) +\frac { { x }_{ i+4 }-t }{ { x }_{ i+4 }-{ x }_{ i+2 } } \left( \frac { t-{ x }_{ i+2 } }{ { x }_{ i+3 }-{ x }_{ i+2 } } { N }_{ i+2,1 }\left( t \right) +\frac { { x }_{ i+4 }-t }{ { x }_{ i+4 }-{ x }_{ i+3 } } { N }_{ i+3,1 }\left( t \right)  \right)  \right)


ここから総和の各項を求めると
i=0の時


\displaystyle { N }_{ 0,4 }\left( t \right) =\frac { t-{ x }_{ 0 } }{ { x }_{ 0+3 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 0+2 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 0+1 }-{ x }_{ 0 } } { N }_{ 0,1 }\left( t \right) +\frac { { x }_{ 0+2 }-t }{ { x }_{ 0+2 }-{ x }_{ 0+1 } } { N }_{ 0+1,1 }\left( t \right)  \right) +\frac { { x }_{ 0+3 }-t }{ { x }_{ 0+3 }-{ x }_{ 0+1 } } \left( \frac { t-{ x }_{ 0+1 } }{ { x }_{ 0+2 }-{ x }_{ 0+1 } } { N }_{ 0+1,1 }\left( t \right) +\frac { { x }_{ 0+3 }-t }{ { x }_{ 0+3 }-{ x }_{ 0+2 } } { N }_{ 0+2,1 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ 0+4 }-t }{ { x }_{ 0+4 }-{ x }_{ 0+1 } } \left( \frac { t-{ x }_{ 0+1 } }{ { x }_{ 0+3 }-{ x }_{ 0+1 } } \left( \frac { t-{ x }_{ 0+1 } }{ { x }_{ 0+2 }-{ x }_{ 0+1 } } { N }_{ 0+1,1 }\left( t \right) +\frac { { x }_{ 0+3 }-t }{ { x }_{ 0+3 }-{ x }_{ 0+2 } } { N }_{ 0+2,1 }\left( t \right)  \right) +\frac { { x }_{ 0+4 }-t }{ { x }_{ 0+4 }-{ x }_{ 0+2 } } \left( \frac { t-{ x }_{ 0+2 } }{ { x }_{ 0+3 }-{ x }_{ 0+2 } } { N }_{ 0+2,1 }\left( t \right) +\frac { { x }_{ 0+4 }-t }{ { x }_{ 0+4 }-{ x }_{ 0+3 } } { N }_{ 0+3,1 }\left( t \right)  \right)  \right) \\ \displaystyle =\frac { t-{ x }_{ 0 } }{ { x }_{ 3 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 2 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 1 }-{ x }_{ 0 } } { N }_{ 0,1 }\left( t \right) +\frac { { x }_{ 2 }-t }{ { x }_{ 2 }-{ x }_{ 1 } } { N }_{ 1,1 }\left( t \right)  \right) +\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } { N }_{ 1,1 }\left( t \right) +\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right)  \right)  \right) \cdots \\ 
\displaystyle \cdots +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } { N }_{ 1,1 }\left( t \right) +\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right)  \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right)  \right)  \right)


n+k+1=8 の節点 \quad x_{ 0 }~{ p }_{ 7 }=\left\{ -3,-2,-1,0,1,2,3,4 \right\}
x_{ 0 }~{ p }_{ 7 }=\left\{ 0,0,0,1/3,2/3,1,1,1 \right\} でも、おそらく大丈夫
パラメータをt\in \left[ 0,1 \right] とすると①より


\displaystyle { N }_{ 0,1 }\left( t \right) =\begin{cases} 1\left( { x }_{ 0 }\le t<{ x }_{ 0+1 } \right)  \\ 0\left( t<{ x }_{ 0 },{ x }_{ 0+1 }<t \right)  \end{cases}\quad \quad =\begin{cases} 1\left( -3\le t<-2 \right)  \\ 0\left( t<-3,-2<t \right)  \end{cases}\quad \quad =0

\displaystyle { N }_{ 1,1 }\left( t \right) =\begin{cases} 1\left( -2\le t<-1 \right)  \\ 0\left( t<-2,-1<t \right)  \end{cases}\quad \quad =0

\displaystyle { N }_{ 2,1 }\left( t \right) =\begin{cases} 1\left( -1\le t<0 \right)  \\ 0\left( t<-1,0<t \right)  \end{cases}\quad \quad =0

\displaystyle { N }_{ 3,1 }\left( t \right) =\begin{cases} 1\left( 0\le t<1 \right)  \\ 0\left( t<0,1<t \right)  \end{cases}\quad \quad =1


これらを{ N }_{ 0,4 }\left( t \right) に代入すると


\displaystyle { N }_{ 0,4 }\left( t \right) =\frac { t-{ x }_{ 0 } }{ { x }_{ 3 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 2 }-{ x }_{ 0 } } \left( \frac { t-{ x }_{ 0 } }{ { x }_{ 1 }-{ x }_{ 0 } } \cdot 0+\frac { { x }_{ 2 }-t }{ { x }_{ 2 }-{ x }_{ 1 } } \cdot 0 \right) +\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } \cdot 0+\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } \cdot 0 \right)  \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } \cdot 0+\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } \cdot 0 \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } \cdot 0+\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } \cdot 1 \right)  \right) \\ \displaystyle =\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right) \\ \displaystyle =\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 1 } } \cdot \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \cdot \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } }


P192の一つ目の式と同じになっていることが確認できる。以下同様に計算していく
i=1の時


\displaystyle { N }_{ 1,4 }\left( t \right) =\frac { t-{ x }_{ 1 } }{ { x }_{ 1+3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 1+2 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 1+1 }-{ x }_{ 1 } } { N }_{ 1,1 }\left( t \right) +\frac { { x }_{ 1+2 }-t }{ { x }_{ 1+2 }-{ x }_{ 1+1 } } { N }_{ 1+1,1 }\left( t \right)  \right) +\frac { { x }_{ 1+3 }-t }{ { x }_{ 1+3 }-{ x }_{ 1+1 } } \left( \frac { t-{ x }_{ 1+1 } }{ { x }_{ 1+2 }-{ x }_{ 1+1 } } { N }_{ 1+1,1 }\left( t \right) +\frac { { x }_{ 1+3 }-t }{ { x }_{ 1+3 }-{ x }_{ 1+2 } } { N }_{ 1+2,1 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ 1+4 }-t }{ { x }_{ 1+4 }-{ x }_{ 1+1 } } \left( \frac { t-{ x }_{ 1+1 } }{ { x }_{ 1+3 }-{ x }_{ 1+1 } } \left( \frac { t-{ x }_{ 1+1 } }{ { x }_{ 1+2 }-{ x }_{ 1+1 } } { N }_{ 1+1,1 }\left( t \right) +\frac { { x }_{ 1+3 }-t }{ { x }_{ 1+3 }-{ x }_{ 1+2 } } { N }_{ 1+2,1 }\left( t \right)  \right) +\frac { { x }_{ 1+4 }-t }{ { x }_{ 1+4 }-{ x }_{ 1+2 } } \left( \frac { t-{ x }_{ 1+2 } }{ { x }_{ 1+3 }-{ x }_{ 1+2 } } { N }_{ 1+2,1 }\left( t \right) +\frac { { x }_{ 1+4 }-t }{ { x }_{ 1+4 }-{ x }_{ 1+3 } } { N }_{ 1+3,1 }\left( t \right)  \right)  \right) \\ \displaystyle =\frac { t-{ x }_{ 1 } }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } { N }_{ 1,1 }\left( t \right) +\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right)  \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right)  \right)  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right)  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right)  \right)  \right)


\displaystyle { N }_{ 4,1 }\left( t \right) =\begin{cases} 1\left( 1\le t<2 \right)  \\ 0\left( t<1,2<t \right)  \end{cases}\quad \quad =0


=\displaystyle \frac { t-{ x }_{ 1 } }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 3 }-{ x }_{ 1 } } \left( \frac { t-{ x }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } } 0+\frac { { x }_{ 3 }-t }{ { x }_{ 3 }-{ x }_{ 2 } } 0 \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } 0+\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } 1 \right)  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } 0+\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } 1 \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } 1+\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } 0 \right)  \right) \\ \displaystyle =\frac { t-{ x }_{ 1 } }{ { x }_{ 4 }-{ x }_{ 1 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } }  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right)


i=2の時


\displaystyle { N }_{ 2,4 }\left( t \right) =\frac { t-{ x }_{ 2 } }{ { x }_{ 2+3 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 2+2 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 2+1 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right) +\frac { { x }_{ 2+2 }-t }{ { x }_{ 2+2 }-{ x }_{ 2+1 } } { N }_{ 2+1,1 }\left( t \right)  \right) +\frac { { x }_{ 2+3 }-t }{ { x }_{ 2+3 }-{ x }_{ 2+1 } } \left( \frac { t-{ x }_{ 2+1 } }{ { x }_{ 2+2 }-{ x }_{ 2+1 } } { N }_{ 2+1,1 }\left( t \right) +\frac { { x }_{ 2+3 }-t }{ { x }_{ 2+3 }-{ x }_{ 2+2 } } { N }_{ 2+2,1 }\left( t \right)  \right)  \right) \cdots \\ \displaystyle \cdots +\frac { { x }_{ 2+4 }-t }{ { x }_{ 2+4 }-{ x }_{ 2+1 } } \left( \frac { t-{ x }_{ 2+1 } }{ { x }_{ 2+3 }-{ x }_{ 2+1 } } \left( \frac { t-{ x }_{ 2+1 } }{ { x }_{ 2+2 }-{ x }_{ 2+1 } } { N }_{ 2+1,1 }\left( t \right) +\frac { { x }_{ 2+3 }-t }{ { x }_{ 2+3 }-{ x }_{ 2+2 } } { N }_{ 2+2,1 }\left( t \right)  \right) +\frac { { x }_{ 2+4 }-t }{ { x }_{ 2+4 }-{ x }_{ 2+2 } } \left( \frac { t-{ x }_{ 2+2 } }{ { x }_{ 2+3 }-{ x }_{ 2+2 } } { N }_{ 2+2,1 }\left( t \right) +\frac { { x }_{ 2+4 }-t }{ { x }_{ 2+4 }-{ x }_{ 2+3 } } { N }_{ 2+3,1 }\left( t \right)  \right)  \right) \\ \displaystyle =\frac { t-{ x }_{ 2 } }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } { N }_{ 2,1 }\left( t \right) +\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right)  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right)  \right)  \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right)  \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } { N }_{ 5,1 }\left( t \right)  \right)  \right)


i=3の時、パターンに沿ってやると


\displaystyle { N }_{ 3,4 }\left( t \right) =\\ \displaystyle \frac { t-{ x }_{ 3 } }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } { N }_{ 3,1 }\left( t \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right)  \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } { N }_{ 5,1 }\left( t \right)  \right)  \right) +\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } { N }_{ 4,1 }\left( t \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } { N }_{ 5,1 }\left( t \right)  \right) +\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 5 } } \left( \frac { t-{ x }_{ 5 } }{ { x }_{ 6 }-{ x }_{ 5 } } { N }_{ 5,1 }\left( t \right) +\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 6 } } { N }_{ 6,1 }\left( t \right)  \right)  \right)


\displaystyle { N }_{ 5,1 }\left( t \right) =\begin{cases} 1\left( 2\le t<3 \right)  \\ 0\left( t<2,3<t \right)  \end{cases}\quad \quad =0

\displaystyle { N }_{ 6,1 }\left( t \right) =\begin{cases} 1\left( 3\le t<4 \right)  \\ 0\left( t<3,4<t \right)  \end{cases}\quad \quad =0


従って


\displaystyle { N }_{ 2,4 }\left( t \right) =\frac { t-{ x }_{ 2 } }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 3 }-{ x }_{ 2 } } \cdot 0+\frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } } \cdot 1 \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } \cdot 1+\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0 \right)  \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } \cdot 1+\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0 \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0+\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } \cdot 0 \right)  \right) \\ =\displaystyle \frac { t-{ x }_{ 2 } }{ { x }_{ 5 }-{ x }_{ 2 } } \left( \frac { t-{ x }_{ 2 } }{ { x }_{ 4 }-{ x }_{ 2 } } \left( \frac { { x }_{ 4 }-t }{ { x }_{ 4 }-{ x }_{ 3 } }  \right) +\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right)


\displaystyle { N }_{ 3,4 }\left( t \right) =\frac { t-{ x }_{ 3 } }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } } \cdot 1+\frac { { x }_{ 5 }-t }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0 \right) +\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0+\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } \cdot 0 \right)  \right) +\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 6 }-{ x }_{ 4 } } \left( \frac { t-{ x }_{ 4 } }{ { x }_{ 5 }-{ x }_{ 4 } } \cdot 0+\frac { { x }_{ 6 }-t }{ { x }_{ 6 }-{ x }_{ 5 } } \cdot 0 \right) +\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 5 } } \left( \frac { t-{ x }_{ 5 } }{ { x }_{ 6 }-{ x }_{ 5 } } \cdot 0+\frac { { x }_{ 7 }-t }{ { x }_{ 7 }-{ x }_{ 6 } } \cdot 0 \right)  \right) \\ \displaystyle =\frac { t-{ x }_{ 3 } }{ { x }_{ 6 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 5 }-{ x }_{ 3 } } \left( \frac { t-{ x }_{ 3 } }{ { x }_{ 4 }-{ x }_{ 3 } }  \right)  \right)


P192~P193の各式と同じになっている事を確認できる

書籍:ゲームアプリの数学 忘備録

行列計算のおぼえがき

個人的なおぼえがき。一般的な憶え方ではない。

\overbrace { \overset { x'=3 }{ \underset { y=2 }{ \begin{bmatrix} a & b & c \\ d & e & f \end{bmatrix} }  } \times \overset { y'=3 }{ \underset { x=2 }{ \begin{bmatrix} 2 & 5 \\ 3 & 6 \\ 4 & 7 \end{bmatrix} }  }  }^{ x'とy'の値は合わせる\\ 必要がある } =\underset { x\times yの行列になる }{ \begin{bmatrix} 2a+3b+4c & 5a+6b+7c \\ 2d+3e+4f & 5d+6e+7f \end{bmatrix} }

  • x'とy'の値があってない場合、それは行列計算として成り立っていない式となる
  • 一項目は横に向かって二項目の縦とひとつひとつ掛け算され総和して計算される

unity固有の問題の解決

unityのVector4、Vector3、Vector2はMatrix4x4等の正方行列と*+演算子で計算できる。この場合ベクトルは数学の慣例に従って「縦の行列」として扱われる
従って下記のような計算は

\begin{bmatrix} a & b & c \end{bmatrix}\begin{bmatrix} 1 & 4 & 7 \\ 2 & 5 & 8 \\ 3 & 6 & 9 \end{bmatrix}=\begin{bmatrix} a+2b+3c & 4a+5b+6c & 7a+8b+9c \end{bmatrix}

一項目が「横の行列」なのでVectorで表現できない。なので以下のように「T 転置(transpose)」を使うなどして同じ意味の式に書き換える必要がある

{ \begin{bmatrix} 1 & 4 & 7 \\ 2 & 5 & 8 \\ 3 & 6 & 9 \end{bmatrix} }^{ T }\begin{bmatrix} a \\ b \\ c \end{bmatrix}\quad \Leftrightarrow \quad { \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} }\begin{bmatrix} a \\ b \\ c \end{bmatrix}=\begin{bmatrix} a+2b+3c \\ 4a+5b+6c \\ 7a+8b+9c \end{bmatrix}

ちなみに以下のような行列式はx'とy'の値が異なってしまうので行列式として成り立たない(Error:Invalid dimension. Vector3が右側の行列と乗算できない理由はこのため)

\overset { x'=1 }{ \underset { y=3 }{ \begin{bmatrix} a \\ b \\ c \end{bmatrix} }  } \overset { y'=3 }{ \underset { x=3 }{ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} }  } \quad =\quad Error

これはP199で言及されている。教科書通りに毎回、転置処理を行うのは実用的でないので式を理解して書き換えた方が良いだろう

曲線のアルゴリズムP186

ベジェ曲線を制御する3点a,b,cを用意
tをパラメーターとした線形補完を行う一次関数を始点中点と中点終点に用意し共にブレンドする

\begin{cases} d\left( t \right) =\left( 1-t \right) a+tb \\ e\left( t \right) =\left( 1-t \right) b+tc \\ p\left( t \right) =\left( 1-t \right) d\left( t \right) +te\left( t \right)  \end{cases}

tは0以上~1以下になる

t\in \left[ 0,1 \right]

この連立方程式を変形してa,b,cに対して整理して行く

\Rightarrow \quad p\left( t \right) =\left( 1-t \right) \left\{ \left( 1-t \right) a+tb \right\} +t\left\{ \left( 1-t \right) b+tc \right\} \\ =\left( 1-t \right) \left( a-ta+tb \right) +t\left( b-tb+tc \right) \\ =a-ta+tb-ta+{ t }^{ 2 }a-{ t }^{ 2 }b+tb-{ t }^{ 2 }b+{ t }^{ 2 }c\\ =a-2ta+2tb+{ t }^{ 2 }a-2{ t }^{ 2 }b+{ t }^{ 2 }c

a,b,cに対して整理

={ t }^{ 2 }a-2ta+a\quad \quad -2{ t }^{ 2 }b+2tb\quad \quad +{ t }^{ 2 }c\\ ={ \left( 1-t \right)  }^{ 2 }a\quad \quad +2\left( 1-t \right) tb\quad \quad +{ t }^{ 2 }c

制御点Pと考える

a={ p }_{ 0 }\quad ,\quad b={ p }_{ 1 }\quad ,\quad c={ p }_{ 2 }\\ \Rightarrow \quad B\left( t \right) ={ \left( 1-t \right)  }^{ 2 }{ p }_{ 0 }\quad +2\left( 1-t \right) t{ p }_{ 1 }\quad +{ t }^{ 2 }{ p }_{ 2 }

方程式を行列式に表現を変更する。「拡大係数行列」と呼ばれるもので、例えばp0に対して行列に直すには以下のように考える

{ \left( 1-t \right)  }^{ 2 }{ p }_{ 0 }\quad =\quad \left( { t }^{ 2 }-2t+1 \right) { p }_{ 0 }\quad =\quad \begin{bmatrix} { t }^{ 2 } & t & 1 \end{bmatrix}\begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix}{ p }_{ 0 }

この要領で全部、書き換えると以下になる

\Rightarrow \quad \quad B\left( t \right) =TCG=\begin{bmatrix} { t }^{ 2 } & t & 1 \end{bmatrix}\begin{bmatrix} 1 & -2 & 1 \\ -2 & 2 & 0 \\ 1 & 0 & 0 \end{bmatrix}\begin{bmatrix} { p }_{ 0 } \\ { p }_{ 1 } \\ { p }_{ 2 } \end{bmatrix}

P188 三次エルミート曲線の導出

想定される三次多項式。係数が未知なので

H\left( t \right) ={ c }_{ 0 }+{ c }_{ 1 }t+{ c }_{ 2 }{ t }^{ 2 }+{ c }_{ 3 }{ t }^{ 3 }

H(0)は始点、H(1)が終点。H'(0)は始点の傾き、H'(1)は終点の傾き。各々をこの三次多項式に当てはめると教本通りになるので
P188で用意された各式を利用するとc2に関しては以下のようにc2のみを抽出できる

{ c }_{ 2 }\quad =\quad 3\left( H\left( 1 \right) -H\left( 0 \right)  \right) -2H'\left( 0 \right) -H'\left( 1 \right) \quad =\quad 3\left\{ \left( { c }_{ 0 }+{ c }_{ 1 }+{ c }_{ 2 }+{ c }_{ 3 } \right) -{ c }_{ 0 } \right\} -2{ c }_{ 1 }-\left( { c }_{ 1 }+{ 2c }_{ 2 }+3{ c }_{ 3 } \right)

c3に関しては以下の様に確かに抽出できる

{ c }_{ 3 }\quad =\quad 2\left( H\left( 0 \right) -H\left( 1 \right)  \right) +H'\left( 0 \right) +H'\left( 1 \right) \quad =\quad 2\left\{ { c }_{ 0 }-\left( { c }_{ 0 }+{ c }_{ 1 }+{ c }_{ 2 }+{ c }_{ 3 } \right)  \right\} +{ c }_{ 1 }+\left( { c }_{ 1 }+{ 2c }_{ 2 }+3{ c }_{ 3 } \right)

これらを元の多項式に代入すると

H\left( t \right) ={ c }_{ 0 }+{ c }_{ 1 }t+{ c }_{ 2 }{ t }^{ 2 }+{ c }_{ 3 }{ t }^{ 3 }\\ \Rightarrow \quad H\left( t \right) =H\left( 0 \right) \quad \quad +\quad \quad H'\left( 0 \right) t\quad \quad +\quad \quad \left\{ 3\left( H\left( 1 \right) -H\left( 0 \right)  \right) -2H'\left( 0 \right) -H'\left( 1 \right)  \right\} { t }^{ 2 }\quad \quad +\quad \quad \left\{ 2\left( H\left( 0 \right) -H\left( 1 \right)  \right) +H'\left( 0 \right) +H'\left( 1 \right)  \right\} { t }^{ 3 }\\ \Rightarrow \quad H\left( t \right) =H\left( 0 \right) \quad +\quad H'\left( 0 \right) t\quad +\quad 3H\left( 1 \right) { t }^{ 2 }-3H\left( 0 \right) { t }^{ 2 }-2H'\left( 0 \right) { t }^{ 2 }-H'\left( 1 \right) { t }^{ 2 }\quad +\quad 2H\left( 0 \right) { t }^{ 3 }-2H\left( 1 \right) { t }^{ 3 }+H'\left( 0 \right) { t }^{ 3 }+H'\left( 1 \right) { t }^{ 3 }

これらを始点、終点、始点接線、終点接線ごとにまとめると

H\left( t \right) =H\left( 0 \right) -3H\left( 0 \right) { t }^{ 2 }+2H\left( 0 \right) { t }^{ 3 }\quad \quad +\quad \quad 3H\left( 1 \right) { t }^{ 2 }-2H\left( 1 \right) { t }^{ 3 }\quad \quad +\quad \quad H'\left( 0 \right) t-2H'\left( 0 \right) { t }^{ 2 }+H'\left( 0 \right) { t }^{ 3 }\quad \quad -H'\left( 1 \right) { t }^{ 2 }+H'\left( 1 \right) { t }^{ 3 }

従って

H\left( t \right) =\left( 1-3{ t }^{ 2 }+2{ t }^{ 3 } \right) H\left( 0 \right) \quad +\quad \quad \left( 3{ t }^{ 2 }-2{ t }^{ 3 } \right) H\left( 1 \right) \quad \quad +\quad \quad \left( t-2{ t }^{ 2 }+{ t }^{ 3 } \right) H'\left( 0 \right) \quad \quad +\quad \quad \left( { -t }^{ 2 }+{ t }^{ 3 } \right) H'\left( 1 \right)

になる。これを始点に対して行列に表現を変えると

\left( 1-3{ t }^{ 2 }+2{ t }^{ 3 } \right) H\left( 0 \right) \quad =\quad \begin{bmatrix} 1 & { t }^{ 1 } & { t }^{ 2 } & { t }^{ 3 } \end{bmatrix}\begin{bmatrix} 1 \\ 0 \\ -3 \\ 2 \end{bmatrix}H\left( 0 \right)

なので、これと同様にH\left( t \right) を書き換えると

\Rightarrow \quad \quad H\left( t \right) =TCG=\begin{bmatrix} 1 & { t }^{ 1 } & { t }^{ 2 } & { t }^{ 3 } \end{bmatrix}\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -3 & 3 & -2 & -1 \\ 2 & -2 & 1 & 1 \end{bmatrix}\begin{bmatrix} H\left( 0 \right)  \\ H\left( 1 \right)  \\ H'\left( 0 \right)  \\ H'\left( 1 \right)  \end{bmatrix}

となる。ここでH'(0)とH'(1)に関してプログラムではコントロールポイントの両脇を加算して2で割った値を接線としている。一見乱暴に見えるが始点と終点の2点しかないからベクトルで考えるとこれは正しい接線となる。

ネイピア数の成り立ちを想像する

資料:虚数の情緒P515~P556
最初に指数関数を考える

f\left( x \right) ={ a }^{ x }

まず、自明な事として、あらゆる指数関数はx=0の時、必ず、f\left( 0 \right) ={ a }^{ 0 }=1 の点を通る。従って極小のx、例えば x=0.000001 において、様々な底を持つ指数関数の傾きの違いを観察すると、その性質や特徴が掴めるのではないか?と昔の数学者は考えたのかもしれない。極小の世界では曲線のグラフもほぼ直線のグラフの様に見える

f:id:cqbosinko:20190305204846p:plain

では実際に、入力値xに極小の値、 x=0.000001 を代入して関数電卓で指数関数の出力値を確認する

{ 2 }^{ 0.000001 }=1.000000693...\\ 3^{ 0.000001 }=1.000001099...\\ 5^{ 0.000001 }=1.000001609...\\ 10^{ 0.000001 }=1.000002303...

計算結果は思った通り1周辺の小数点5桁目から違いが確認できるような値となっている
傾きを調べる為にはx=0と引いて差分を求める必要がある。つまり

\displaystyle 傾き=\frac { 指数関数の極小の差分 }{ 入力値の極小の差分 } \quad \Rightarrow \quad f'\left( x \right) \simeq \frac { f\left( 0.000001 \right) -f\left( 0 \right)  }{ 0.000001-0 }

xは極限まで小さい値とは言えないが、かなり小さい値である。この式を求めれば各底の指数関数の傾きが求められる

\displaystyle \frac { { 2 }^{ 0.000001 }-{ 2 }^{ 0 } }{ 0.000001-0 } =\frac { 1.000000693...-1 }{ 0.000001 } =0.69314742...\quad \cdots ①\\ \displaystyle\frac { { 3 }^{ 0.000001 }-{ 3 }^{ 0 } }{ 0.000001-0 } =\frac { 1.000001099...-1 }{ 0.000001 } =1.09861289...\\ \displaystyle\frac { 5^{ 0.000001 }-5^{ 0 } }{ 0.000001-0 } =\frac { 1.000001609...-1 }{ 0.000001 } =1.6094392...\\ \displaystyle\frac { 10^{ 0.000001 }-{ 10 }^{ 0 } }{ 0.000001-0 } =\frac { 1.000002303...-1 }{ 0.000001 } =2.30258774...

これが極小の世界の指数関数の傾きの違いだ。①を例にとって考える。これはxが1進む間にf\left( x \right) が0.69314742...進むという事を表している(数値の後ろの...はこの後ろに何桁も値が続いているが書ききれないので省略しているよ、と言う事を表している)。では反対にf\left( x \right) が1進むとxはどれだけ進むのだろうか?これは単純に \frac { 1 }{ 0.69314742... } で求められる。では、この値を元の底に指数関数の入力として与えると何が求まるだろうか?これは「極小の傾き1の指数関数の底の値」を求めることになる。この計算には対数を利用するとよい。計算は以下になる。

\displaystyle 極小の傾き1の指数関数の底の値\quad \simeq \quad \log _{ 2 }{ x } =\frac { 1 }{ 0.69314742... } \quad \Leftrightarrow \quad x={ 2 }^{ \frac { 1 }{ 0.69314742... }  }=2.718280889...\quad \simeq \quad e

ネイピア数は周知のとおり、e=2.718281828...。その近似値を極小の世界に注目する事で簡単に求められる事がこれで確認できた。これは他の底を持つ指数関数でも同様に行える。

\log _{ 3 }{ x } =\frac { 1 }{ 1.09861289... } \quad \Leftrightarrow \quad x={ 3 }^{ \frac { 1 }{ 1.09861289... }  }=2.718280341...\quad \simeq \quad e\\ \log _{ 5 }{ x } =\frac { 1 }{ 1.6094392... } \quad \Leftrightarrow \quad x={ 5 }^{ \frac { 1 }{ 1.6094392... }  }=2.718279654...\quad \simeq \quad e\\ \log _{ 10 }{ x } =\frac { 1 }{ 2.30258774... } \quad \Leftrightarrow \quad x=10^{ \frac { 1 }{ 2.30258774... }  }=2.718278704...\quad \simeq \quad e

ここで、「指数関数の極限を利用した傾き」の意味を振り返って考えてみると、指数関数の出発点、x=0,y=1の時点の"各底の勢い"(傾き)みたいなものだと考える事が出来る。
そこで、この"勢い"の違いを利用しようと考えると

\log _{ e }{ x } =\frac { 0.69314742... }{ 1 } \quad \Leftrightarrow \quad { e }^{ 0.69314742... }\simeq 2

この右辺の式は表現が違うだけで同じ値である事を表しているから、これを「底にして指数関数を作る」と

\Rightarrow \quad { \left( { e }^{ 0.69314742... } \right)  }^{ x }\quad \simeq \quad { \left( { 2 }^{ 1 } \right)  }^{ x }\quad \Rightarrow \quad { e }^{ 0.693x }\quad \simeq \quad { 2 }^{ x }

と考える事が出来る。関数の出発点の勢いをこれで同期させることになる。関数の表現は違うが出力は同じ値になる。
ここまで考えるとネイピア数が指数関数にとって数字の1のような基本になる定数値である事が理解しやすいと思う。
だから「自然対数の底(Base)」という名前が付けられていると考えられる。指数関数の極小の世界は不思議だ。
極小の世界の特徴、性質を掴む事で極大の性質、無限大に近い性質も掴む事が出来る。これが微分の意義と感じることも多い。

f:id:cqbosinko:20190305220619p:plain

いかにして問題を解くか、次元解析、スケーリング、アロメトリー、対数、ネイピア数と一次近似

© Unity Technologies Japan/UCL
f:id:cqbosinko:20190222003224p:plain

考える生物の形状を問わず立方体だとして考えると

  • 体長^2=面積 m^2
  • 体長^3=体積 m^3
  • 1立方メートル(m^3)=1リットル

動物の体はほぼ水で出来ている。水の比重はほぼ1なので体積が1リットルの物は1キログラムと考えられる。なので体積を体重に置き換えると
1{ m }^{ 3 }=1ℓ=1㎏\quad \quad \Rightarrow \quad \quad 体長\propto { 体重 }^{ \frac { 1 }{ 3 }  }\quad \quad \Rightarrow \quad \quad 体長\propto \sqrt [ 3 ]{ 体重 }
このロジックで行くと体重55kgの立方体人間の体長は { \left( 55kg\times 1000g \right)  }^{ \frac { 1 }{ 3 }  }=38.029cm になる。
このスクショの右側のユニティちゃんが体長1m、その周りを囲う立方体が1{ m }^{ 3 }、その左のテクスチャが貼られた立方体が一辺38cmになっている。
本来ユニティちゃんの身長はSDで無い場合、およそ1.5mぐらいと考えられるが。そういう部分を差し引いても大体、体積に対して、このロジックが正しいと感覚的に感じるのではないだろうか。

表面積と体積との関係は逆数になる

参考資料:「ゾウの時間 ネズミの時間 サイズの生物学 サイズとエネルギー消費量 表面積と体積」より

\displaystyle \frac { 表面積 }{ 体積 } =\frac { { n }^{ 2 } }{ { n }^{ 3 } } =\frac { 1 }{ n } ={ n }^{ -1 }

球形状の場合

 \frac { 4\pi { r }^{ 2 } }{ \frac { 4 }{ 3 } \pi { r }^{ 3 } } \quad \xrightarrow { アロメトリーで考える } \quad \frac { a{ r }^{ 2 } }{ b{ r }^{ 3 } } \quad \rightarrow \quad \frac { a }{ b } \cdot \frac { 1 }{ r } \quad \propto \quad c{ r }^{ -1 }

\propto は 比例記号(proportional)と呼ばれるもので「比例する」という意味になる

この最右辺の式はアロメトリー式になっている事に注目。この場合、cは抽象化した倍数。rは長さを表しているので、長さの逆数と比例するみたいになる

特撮におけるミニチュア撮影

<参考資料>
ja.wikipedia.org
wired.jp

ウィキペディア内で記載されている、「ハリウッドのSFXスタジオで目安とされている模型のスケールと撮影速度の対応表」に関して
これは一覧表になっていますが一般化できます。映画のフィルムは秒間24コマ、つまり24FPSなので計算式は

24\times \sqrt { \frac { 1 }{ \left( スケール \right)  }  }

になります。この論理的根拠は重力加速度(Acceleration)の式を次元解析で考えると導ける

a=4.9t^2

これを単位の次元で考えると

加速度 = 長さ ×(時間)^2

加速度 ∝ 長さ ×(時間)^2

(時間)^2 ∝ 加速度 / 長さ

加速度は普遍と考えると

(時間)^2 ∝ 1 / スケール

時間 ∝ sqrt( 1 / スケール )

これに秒間24フレームを掛けると撮影速度が算出できる。この考えを応用すると、まずユニティのレイアウト空間に正しい寸法(サイズ)でオブジェクト配置する事で正しい物理挙動が得られる事は当然として、その上でゲーム的なリアクションやカリカチュアライズを施す際に、どれぐらいのタイムスケールや加速度、質量でモノを動かせばよいのか「計算してデザイン」する事が可能となるのではないか?

対数計算のコツ

例:桁で分離して考える

\begin{eqnarray} \log _{ 10 }{ 12 }  & = & \log _{ 10 }{ 10 } +\log _{ 10 }{ 1.2 }  \\ \quad  & = & 1+\log _{ 10 }{ 1.2 }  \\ \quad  & = & 1+0.07918... \end{eqnarray}\quad \Rightarrow \quad { 10 }^{ 1.0079 }\simeq 12

\begin{eqnarray} \log _{ 10 }{ 90 }  & = & \log _{ 10 }{ 10 } +\log _{ 10 }{ 9 }  \\ \quad  & = & 1+\log _{ 10 }{ 9 }  \\ \quad  & = & 1+0.9542... \end{eqnarray}\quad \Rightarrow \quad { 10 }^{ 1.95 }\simeq 90

\begin{eqnarray} \log _{ 10 }{ 512 }  & = & \log _{ 10 }{ 100 } +\log _{ 10 }{ 5.12 }  \\ \quad  & = & 2+0.7092 \end{eqnarray}\quad \Rightarrow \quad { 10 }^{ 2.7092 }\simeq 512

対数計算のコツ

\ln { 2=0.69314718 } \\ \ln { 4=1.386294361 } =\ln { { 2 }^{ 2 } } =2\times \ln { 2 } \\ \ln { 8=2.079441542 } =\ln { { 2 }^{ 3 } } =3\times \ln { 2 }

 \ln { 3=1.098612289 } \\ \ln { { 3 }^{ 2 }=\ln { 9 } =2.199224577 } =2\times \ln { 3 } \\ \ln { { 3 }^{ 3 }=\ln { 27 }  } =3\times \ln { 3 }

{ e }^{ 2.3025...\times n }\simeq { 10 }^{ n }

n=1で10
n=2で100
n=3で1000に近似する
この考えは以下のように整理できる

\Rightarrow \quad \ln { { { 10 }^{ n } } } \simeq 2.3025...\times n\quad \Rightarrow \quad \frac { n\ln { { { 10 } } }  }{ n } \simeq 2.3025...\quad \Rightarrow \quad \ln { { { 10 } } } \simeq 2.3025...

アロメトリー式

資料:
ja.wikipedia.org

y=a{ x }^{ n }

これは対数でも書き表せる

\Leftrightarrow \quad \log { y } =\log { a } +n\log { x }

対数グラフで見た時、xが1の時、aの点を通り、傾きがnの直線になる

調和平均の式の求め方

f:id:cqbosinko:20180111221949p:plain
数直線で考えると上記になる。この数直線のxを求めると考える

\frac { 1 }{ x } =\frac { \frac { 1 }{ a } +\frac { 1 }{ b }  }{ 2 } \Leftrightarrow \frac { 2 }{ x } =\frac { 1 }{ a } +\frac { 1 }{ b } \Leftrightarrow 2=\frac { x }{ a } +\frac { x }{ b } \Leftrightarrow 2ab=bx+ax\Leftrightarrow 2ab=\left( a+b \right) x\Leftrightarrow x=\frac { 2ab }{ a+b }

双曲線のグラフと調和数列のグラフは同じものと言える

f:id:cqbosinko:20180111225803p:plain

調和数列は例えば音楽の倍音によるハーモニーのような心地よい感情を想起させたりする(波状のものに相性がいい)
おそらくゲームバランスのパラメーター調整などで使った方が良いと予想される

対数関数について

(資料書籍:ふたたびの微分積分P167 底の変換公式)

\log _{ a }{ b } =m の時、\displaystyle m=\frac { \log _{ c }{ b }  }{ \log _{ c }{ a }  } となる

これを証明すると以下になる。まず各対数関数から、それぞれ以下の指数関数が導ける

\log _{ a }{ b } =m\quad \Rightarrow \quad { a }^{ m }=b\\ \log _{ c }{ a } =n\quad \Rightarrow \quad c^{ n }=a\\ \log _{ c }{ b } =o\quad \Rightarrow \quad c^{ o }=b

{ a }^{ m }=bに対してそれぞれの指数関数を代入すると

\Rightarrow \quad \left( { c^{ n } } \right) ^{ m }={ c^{ o } }\quad \Rightarrow \quad c^{ mn }={ c^{ o } }\quad \Rightarrow \quad \overbrace { mn=o }^{ 指数部分に注目して考えればこうなる } \quad \Rightarrow \quad m=\frac { o }{ n } \quad \Leftrightarrow \quad \log _{ a }{ b } =\frac { \log _{ c }{ b }  }{ \log _{ c }{ a }  }

と考える事が出来る。この時、cは底を揃えるためのもので、実際は何を使ってもいい。極端に言えば計算を運用しやすいネイピア数にして置くと色々便利であると言える

\therefore \quad c^{ m }={ c^{ \frac { o }{ n }  } }

実際の計算例で考えてみる

\log _{ 4 }{ 64 } =3 の式があったとして、「底の変換公式」を利用してみると

\frac { \log _{ 2 }{ 64 }  }{ \log _{ 2 }{ 4 }  } =\frac { 6 }{ 2 } =3\quad \Leftrightarrow \quad { 4 }^{ 3 }={ 4 }^{ \frac { 6 }{ 2 }  }\\ \frac { \log _{ 4 }{ 64 }  }{ \log _{ 4 }{ 4 }  } =\frac { 3 }{ 1 } =3\quad \Leftrightarrow \quad { 4 }^{ 3 }={ 4 }^{ \frac { 3 }{ 1 }  }\\ \frac { \log _{ 5 }{ 64 }  }{ \log _{ 5 }{ 4 }  } =\frac { 2.5840... }{ 0.86135... } =2.999...\simeq 3\quad \Leftrightarrow \quad { 4 }^{ 3 }\simeq { 4 }^{ \frac { 2.5840... }{ 0.86135... }  }

この時、「底の変換公式」の分母の真数が基準(底、ベース)となる。式の構造として底が共通同士の指数比に持っていく為に対数関数を利用していると考えると良い

成長とネイピア数の関係について

TODO

ポインター

僕が考える翻訳の本質とは魂を伝える事だと思う。魂とは何かというと包括的にとらえるとポインターなのだと考えている。つまりグラフにおける指し示す記号。
パス(経路)。「指月の譬」だと思う。「私は、あの月をあなた方に指し示すことはできるが月を見るか見ないかはあなた方の自由意志に任されている」という、お釈迦さまの格言がある。
その指が魂。
f:id:cqbosinko:20181218111749p:plain
指月の譬 - Google 検索

コンピューター。Siriやグーグルの検索にはパターン学習が利用されている。最近では翻訳にも利用されている
wired.jp

ある統計モデルは「ボンジュール」を「ハロー」と翻訳する。場合によりそのポインター(指月の譬)は正しく機能するが、ある場合によっては「情報の欠損」があるだろう。
自分が考える良い翻訳とは、この情報の欠損がないことだ。場合によっては増強できれば尚良い。色々考えると、色即是空とはおそらく関数のことをあらわしているのではないかと考える事がある。
関数の語源は数学などの教本によるとハコ「函」から来ているらしい。現代においての関数の当て字に対しての僕の感想は違う。二つの関心がある事柄を繋げて考える。
関係性や関心の「関」から来ているのではないだろうか。繋げるためには間にパス(経路)が必要になるだろう。

指数とはまた面白い言葉だ。

虚数の情緒P469メモ

虚数の情緒P469メモ

{ x }^{ 5 }-1=0\\ \Rightarrow \quad \left( x-1 \right) \underbrace { \left( { x }^{ 4 }+{ x }^{ 3 }+{ x }^{ 2 }+{ x }+1 \right)  }_{ この根を解く }

次数の関係性を保ったまま次数を落とす。xの解を求める事が目的なら大丈夫

{ x }^{ 4 }+{ x }^{ 3 }+{ x }^{ 2 }+{ x }+1\quad \Rightarrow \quad \frac { { x }^{ 4 }+{ x }^{ 3 }+{ x }^{ 2 }+{ x }+1 }{ { x }^{ 2 } } \quad =\quad { x }^{ 2 }+{ x }+1+\frac { 1 }{ x } +\frac { 1 }{ { x }^{ 2 } }

t=x+\frac { 1 }{ x } \quad \cdots ①\\ { t }^{ 2 }={ x }^{ 2 }+2+\frac { 1 }{ { x }^{ 2 } } \\ { t }^{ 2 }+t-1={ x }^{ 2 }+{ x }+1+\frac { 1 }{ x } +\frac { 1 }{ { x }^{ 2 } }

根の公式、\frac { -b\pm \sqrt { { b }^{ 2 }-4ac }  }{ 2a } より、a=1,b=1,c=-1 として

t=\frac { -1\pm \sqrt { 1^{ 2 }-4\cdot 1\cdot -1 }  }{ 2\cdot 1 } =\frac { -1\pm \sqrt { 5 }  }{ 2 }

①に代入してこのxを求める

\frac { -1\pm \sqrt { 5 }  }{ 2 } =x+\frac { 1 }{ x }

両辺をx倍

\frac { -1\pm \sqrt { 5 }  }{ 2 } x={ x }^{ 2 }+1\quad \Rightarrow \quad { x }^{ 2 }-\frac { -1\pm \sqrt { 5 }  }{ 2 } x+1=0

根の公式より、a=1,b=-\frac { 1 }{ 2 } \left( -1\pm \sqrt { 5 }  \right) ,c=1 として複号も計算すると

{ b }_{ 1 }=-\frac { 1 }{ 2 } \left( -1+\sqrt { 5 }  \right) \quad ,\quad { b }_{ 1 }^{ 2 }=\frac { 1 }{ 4 } \left( 6-2\sqrt { 5 }  \right) \\ { x }_{ 1 },{ x }_{ 2 }=\frac { -\left\{ -\frac { 1 }{ 2 } \left( -1+\sqrt { 5 }  \right)  \right\} \pm \sqrt { \frac { 1 }{ 4 } \left( 6-2\sqrt { 5 }  \right) -\frac { 16 }{ 4 }  }  }{ 2 } =\frac { \frac { 1 }{ 2 } \left( -1+\sqrt { 5 }  \right) \pm \sqrt { \frac { 1 }{ 4 }  } \sqrt { \left( 6-2\sqrt { 5 }  \right) -16 }  }{ 2 } =\frac { 1 }{ 4 } \left( -1+\sqrt { 5 } \pm \sqrt { -10-2\sqrt { 5 }  }  \right) =\frac { 1 }{ 4 } \left( \sqrt { 5 } -1\pm i\sqrt { 10+2\sqrt { 5 }  }  \right) =0.309016994...\pm 0.951056516...i

{ b }_{ 2 }=-\frac { 1 }{ 2 } \left( -1-\sqrt { 5 }  \right) \quad ,\quad { b }_{ 2 }^{ 2 }=\frac { 1 }{ 4 } \left( 6+2\sqrt { 5 }  \right) \\ { x }_{ 3 },{ x }_{ 4 }=\frac { -\left\{ -\frac { 1 }{ 2 } \left( -1-\sqrt { 5 }  \right)  \right\} \pm \sqrt { \frac { 1 }{ 4 } \left( 6+2\sqrt { 5 }  \right) -\frac { 16 }{ 4 }  }  }{ 2 } =\frac { \frac { 1 }{ 2 } \left( -1-\sqrt { 5 }  \right) \pm \sqrt { \frac { 1 }{ 4 }  } \sqrt { \left( 6+2\sqrt { 5 }  \right) -16 }  }{ 2 } =\frac { 1 }{ 4 } \left( -1-\sqrt { 5 } \pm \sqrt { -10+2\sqrt { 5 }  }  \right) =\frac { 1 }{ 4 } \left( -\sqrt { 5 } -1\pm i\sqrt { 10-2\sqrt { 5 }  }  \right) =0.809016994...\pm 0.587785252...i

定規とコンパスのみで正五角形を描いて黄金比を考察