2013年8月16日金曜日

指数関数の再帰的?定義

指数関数は再帰的に定義することができる?
\[
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)$である。

2013年8月15日木曜日

関数型、オブジェクト指向

1+1という行為に対して、
  1. 整数型の引数を二つ取り、整数型の値を返す + なる二項演算子に引数1, 1を与えようと考えるのが関数型。
  2. 整数クラスのインスタンスである1 に引数として整数クラスのインスタンスを取るメッセージ + を送ってろう(メッセージング)と考えるのがアラン・ケイ流オブジェクト指向。
  3. 整数クラスのインスタンスである1 に引数として整数クラスのインスタンスを取るメソッドを呼び出そうと考えるのがビャーネ・ストロヴストルップ流オブジェクト指向。
であろうか。模式的に書くなら
  1. add(1, 1)
  2. 1 add: 1
  3. 1.add(1)
プログラミングに関する概念は幾つかの階層に分かれるのがややこしいですね。〜(指向 or 型)プログラミング言語を用いて〜(指向 or 型)プログラミングを行う。という文章が成り立つと思います。

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

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}
\]