Chandler@Berlin -21ページ目

Chandler@Berlin

ベルリン在住

Function

実は順番で言えば,ここに matrix が入るのだが,話を簡単にするためにここでは飛ばしておこう.

さて,ベクトルは多数のスカラを並べたものだった.ベクトルではスカラを並べる順番はとても重要である.順番を間違えるとまったく違うものになってしまう.位置の例を思い出してみよう.位置のベクトルは[方向 距離]で[50 5]だったが,もしこれを[5 50]と入れ替えてしまうと,角度 5 度,距離 50 km と角度 50 度距離5 km とはまったく違うものになってしまう(少なくともユークリッド空間では).

ここでもっと沢山のスカラを並べてみよう.図1にその様子を示す.スカラは一つの数,複数の数を並べたものが vector であった.さて,もっと vector を並べてみよう.どんどん並べていくと最後には関数になってしまった.ちょっとここではずるをしていて,いくつかの条件がないと数学としてはまずい部分があるが,最初としては直感的にこういう理解でそんなに悪くはないと思う.(ちょっと話がそれてしまうが,これによってたとえば,関数の内積というものが vector の内積の拡張として理解できる.相関係数(correlationcoefficient)が実は内積であるということもわかる.すると,相関度が高いというのは内積が 1 になるということであり,低いというのは,0,つまり vectorの場合,内積が 0である.これは直交しているので関係がないのである.これらがすらすらと見えてくるのでこの直感はとっかかりとして良いと思う.)スカラとベクトルと関数の関係の一面がわかってもらえたであろうか?

$Chandler@Berlin-function

Figure1: Scalar, vector, and function



こうしてみると,スカラとベクトルと関数は実は X と Y の組の数が違うだけだ.

- スカラ: 一つの X (例: 高さ) と一つの Y (例: 170cm)
- ベクトル: 複数の X (例:[方向 距離]) と対応する Y (例: [50 5])
- 関数: 連続な X とそれに対応する Y (例: Y = f(X))


では,スカラでもベクトルでも関数でも同じもの(= 変化しないもの,invariant)というのは何だろうか.こういう抽象化が数学では良く使われる.数学では,変化しないものを考えることが多い,それは区別する必要がないからだ.いろいろと条件を変えても変化しない何かというのは,おそらくそのものの正体である.仮面をいくつも持つことはできるが,その下には何かがある.それは様々な条件下で常に同じものである.Eigenvalue と transfer function の話にはこの抽象化が必要なのでまずはこの話をした.

さて,次は Eigenvalue の話をしよう.
読まなくてはいけないなと思いつつずっと読んでいなかった Scott Meyers のEffective STL を読んだ.Allocator については難しくてわからなかったが,remove と erase の使い方や algorithm に関する話はとても面白かったし,有益であった.C++ Programmer におすすめです.
Scalar, vector, and function

Scalar

何かの量を言いたい時,数を使う.しかしその数にはいつも「何か」が付属していることに注意しておこう.たとえば,130 という数字そのものはあまり意味がない.誰かの背の高さが 130 cm かもしれないし,アウトバーンの速度制限が130 km/h であるの 130 かもしれない.いずれにせよ,一つの数字でも「何か」が普通は必要だ.「背の高さ」とか「制限速度」というものである.図 1 にそれを示しておこう.こういう単独の数をスカラという.単なる数なのにわざわざスカラとかいう名前がついているのは,ベクトルや数(複素数)などと区別するためだ.

Chandler@Berlin-scalar

図 1 Scalar has some meaning


Vector

一つの数字で示すことができないものがいくつもある.たとえば場所である.私の家から Zoo 駅までの距離は一つの数,スカラで示すことができるが,しかし方向も必要である.時計回りに真北からの角度 50度距離 5 km と言うこともできるし,北に3 km 東に 4 km と言うこともできる.でも一つのスカラ値では示すことができない.このような場合,一つのスカラ値ではなく,いくつものスカラ値を使わなくてはならないことがわかる.たとえば,ある人の「背の高さ」「体重」「現在の体温」「血圧」というようなものを示したいという場合である.図 2 にその例を示しておこう.ところで,違う単位のものを並べていいのか? ここでは背の高さに体重というような単位が違うものを並べている.(とは言ってもたいていの学校では体育と英語と数学の点数を足したりするというある意味暴挙に出ることに疑いもないのだから,気にしない人もいるかもしれない.しかし,これは時には危険なことだから,一度は考えた方がいいかと思う.)これはベクトルとしてはかまわない.ベクトルというのはスカラ値を並べたものである.たとえば,位置を示す時に既に角度と距離を使ったが,これた単位が違うものだ.問題は演算をする時に発生する.もちろん角度と距離は単位が違うので足し算ができない.しかし,そういう足し算をしない限り,ベクトルはこの位置の例のように意味がある.

ここではベクトルを示すのに,[]を使い,その中に複数の数の並びを書くことにする.たとえば,[170 70 36 120] というのは4つの数を持つベクトルである.ここでは順番が重要であることに注意すること.

Chandler@Berlin-vector

図 2 Vector is a series of scalar


次回はベクトルと関数の関係について話をしてみたいと思う.スカラとベクトルの関係はよく知られているようだが,ベクトルと関数の関係はそうでもない気がする.私は Fourier 解析で始めて習ったように記憶している.