指数関数は再帰的に定義することができる?
\[
f_n (x) = 1 + x\frac{
f_{n+1}(x)
}{n+1}
\]
として、$\exp(x)\equiv f_0(x)$である。ネイピア数$e$は
\[
e_n = 1 + \frac{ e_{n+1} }{ n+1 }
\]
として、$e\equiv e_0$である。一般に$C^\omega$級関数は
\[
f_n(x) = f^{(n)}(a) + (x-a)\frac{
f_{n+1}(x)
}{n+1}
\]
として、$f(x)\equiv f_0(x)$と表せる。一般に
\[
\exp(ax) \equiv \lim_{n\rightarrow \infty} \left( 1 + a\frac{x}{n}\right)^n
\]
なる定義は微小変換の「積み重ね」として表せる大局的変換としての性質を、
\[
\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}
\]
なる定義は微分$d/dx$の固有ベクトルとしての性質を反映している。上の再帰的定義はどのような性質を反映したものであろうか。
ちなみにFourier展開の場合、 元の関数を$f$、展開係数を$a_n$とすると
\[
f_n(x) = a_n + e^{i x} f_{n+1}(x)
\]
として、$f(x) \equiv f_{-\infty} (x)$である。
keyword:プログラミング,linux,親指シフト,(物理),TeX,emacs,など々々
初心者のパソコン関係の備忘録。
環境はおもにVine -> Debian -> Gentoo -> Debian -> Gentoo -> FreeBSD
最近は研究室のサーバーを使って遊んだり。
2013年8月16日金曜日
2013年8月15日木曜日
関数型、オブジェクト指向
1+1という行為に対して、
- 整数型の引数を二つ取り、整数型の値を返す + なる二項演算子に引数1, 1を与えようと考えるのが関数型。
- 整数クラスのインスタンスである1 に引数として整数クラスのインスタンスを取るメッセージ + を送ってろう(メッセージング)と考えるのがアラン・ケイ流オブジェクト指向。
- 整数クラスのインスタンスである1 に引数として整数クラスのインスタンスを取るメソッドを呼び出そうと考えるのがビャーネ・ストロヴストルップ流オブジェクト指向。
- add(1, 1)
- 1 add: 1
- 1.add(1)
fold と unfold (gauche)
リスト(1 2 3)というものは次のようにして構成されます。
(cons 1 (cons 2 (cons 3 '())))
(cons a b) を (a . b) と書くことにすれば、
(1 . (2 . (3 . '())))
です。ところで、自然数123というのは、通常10進法で表記しているわけですが、これは次のようにして定義されています。
3 + 10*( 2 + 10*(1 + 10*0)))
似ていますね。このような対象同士を相互に変換するのがfold とunfold-right です。
(fold (lambda (a b) (+ (* b 10) a )) 0 '(1 2 3)) ==> 123
(unfold-right zero? (lambda (n) (modulo n 10))
(lambda (n) (quotient n 10))
123) ==> (1 2 3)
unfold だとリストの構造上逆に表記されます。その場合fold-right で元に戻ります。
(unfold zero? (lambda (n) (modulo n 10))
(lambda (n) (quotient n 10))
123) ==> (3 2 1)
(fold-right (lambda (a b) (+ (* b 10) a )) 0 '(3 2 1)) ==> 123
(cons 1 (cons 2 (cons 3 '())))
(cons a b) を (a . b) と書くことにすれば、
(1 . (2 . (3 . '())))
です。ところで、自然数123というのは、通常10進法で表記しているわけですが、これは次のようにして定義されています。
3 + 10*( 2 + 10*(1 + 10*0)))
似ていますね。このような対象同士を相互に変換するのがfold とunfold-right です。
(fold (lambda (a b) (+ (* b 10) a )) 0 '(1 2 3)) ==> 123
(unfold-right zero? (lambda (n) (modulo n 10))
(lambda (n) (quotient n 10))
123) ==> (1 2 3)
unfold だとリストの構造上逆に表記されます。その場合fold-right で元に戻ります。
(unfold zero? (lambda (n) (modulo n 10))
(lambda (n) (quotient n 10))
123) ==> (3 2 1)
(fold-right (lambda (a b) (+ (* b 10) a )) 0 '(3 2 1)) ==> 123
2013年8月6日火曜日
テスト(コピペ)
研究室のサーバーを管理するついでにxyjaxをインストールしたのでダイアグラムが描けるようになりました。拡大しても美しい$\mathrm{\TeX}$の魅力はhtmlでも・・・
\[
\begin{xy}
\xymatrix {
U \ar@/_/[ddr]_y \ar@{.>}[dr]|{\langle x,y \rangle} \ar@/^/[drr]^x \\
& X \times_Z Y \ar[d]^q \ar[r]_p & X \ar[d]_f \\
& Y \ar[r]^g & Z
}
\end{xy}
\]
\[
\begin{xy}
\xymatrix {
U \ar@/_/[ddr]_y \ar@{.>}[dr]|{\langle x,y \rangle} \ar@/^/[drr]^x \\
& X \times_Z Y \ar[d]^q \ar[r]_p & X \ar[d]_f \\
& Y \ar[r]^g & Z
}
\end{xy}
\]
登録:
投稿 (Atom)