プログラミングのための線形代数
私は数学は嫌いじゃないのですが苦手です。
固有値問題も微分方程式もフーリエ変換もわかりたくてしょうがなかったはずなのだけど、
退屈な授業を受けてやたら疲れる試験のためにつまらない問題を解いてを繰り返し
単位をもらって卒業してみれば一体私は何を理解できたのだろうかと切なくなりもします。
とりあえずそういうものなんだと形だけは納得したことにして
いつまでももやもやとしたものが渦巻いているのです。
でも数学が面白いということはわかっているのです。
数学の面白さのごく一部ですが私はそれを味わったことがあります。
だから苦手なのかもしれないけど、効率悪いのかもしれないけど、
私は数学から一生離れないつもりです。
今プログラミングのための線形代数という本をちびちび読んでいます。
ついさっきやっと1章が終わったところです。
線形代数は高専でけっこうやった気がするけど、
全然わかっていなかったことがわかりました。
この本はとてもわかりやすいです!
線形代数をわかりたいけどわからない人はぜひ読んでみてください。
数学が苦手な人のためにこれ以上ないくらい親切丁寧に説明されています。
図や数式が見易いように理解しやすいように配慮されています。
わからない人のことを本当に考えられて書かれた本です。
数学の本でこういうのは滅多にありません。
必要最低限で堅苦しい教科書ばかりが溢れています。
結局我々は何故線形代数を必要としているのか。
そんなものを知って一体何に使うのか。
行列とは何? 行列式とは何?
還元的な定義なんてどうでもいいんだよ。
それはなんのために存在しているのか、
目的だよ目的!
それがわからなければ理解したいとも思いようがないでしょう。
まずそこから入るべきなんですよ。
定義だとか証明はおまけでいいんですよ。
ボトムアップじゃなくてトップダウン。
そういう教え方してもらいたかったなぁ。
まぁ私はこの本に出会えただけ良かった。
数学の魅力を欠片でも知っていて良かった。
こんな感じの専門書がもっともっと増えてくれれば良いと心底思います。
内容は実際どんなものなのか、少しだけ引用して紹介します。
私が読んだ範囲からなので最初の方の話になります。
n次元ベクトルxにm*n行列Aを掛けると、m次元ベクトルy=Axが得られます。 つまり、行列Aを指定すれば、ベクトルを別のベクトルに移す写像が定まるわけです。 実は、これこそが行列の一番大事な機能です。 今からは、行列を見たら、単に「数が並んでる」と思うのではなく、 「写像が与えられた」と考えてください。 しつこく強調しておきます。「行列は写像だ」 -- p25
一般に、n次正方行列Aに対して、「n次元版の体積」の拡大率が、 行列式detAです。2次正方行列A=(a1,a2)の行列式は、 「ベクトルa1,a2が定める平行四辺形の面積」と解釈することもできます。 なぜなら、面積1の正方形をAで変換した結果がこの平行四辺形だからです(図1.29)。 同様に、3次正方行列A=(a1,a2,a3)の行列式は、 「ベクトルa1,a2,a3が定める平行六面体の体積」とも解釈できます。 なお、図形が「裏返し」になる場合は、「負の拡大率」で表すことにします。 気分が出ていて、いかにもな雰囲気でしょう? (図1.30) また、図形がぺちゃんこになるときは、拡大率が0です(図1.31)。 --p68
文章が平易でわかりやすいのも素晴しいのですが、
現れる数式や図が実に洗練されているのが理解を助けるのに
大きな役割を果たしているのでその辺は伝えられないのが残念です。
あと厳密な定義とか計算方法は割とどうでもいいというスタンスなので、
正確さは二の次として書かれています。
かなり細かな補足が載っているので内容が不十分だとは思いませんが、
その辺はわかっている人に評価してもらわないと何とも言えませんね。
ちなみにこの本はプログラミングとの関連性は非常に薄いです。
プログラムはどこかには載っていますが、
パラパラとめくってみても簡単には見あたりません。
プログラミングの本ではありません。線形代数の本です。
「プログラミングのための」というのは数学を専門としてはいないが
道具として必要とする工学系の人間を主なターゲットとしているからだと思います。

>退屈な授業を受けてやたら疲れる試験のためにつまらない問題を解いてを繰り返し
ま、私は居るだけで授業受けてないってのがほとんどだったけどな。
私の場合は、1を聞いて10を知る(授業の初めのところを聞いたらそれで終わって、その後は、「そんなことは
言われなくても分かるってんだよ」てこと)か、さっぱり理解できないか、の2つに1つだな。
さっぱり理解できないのに当たると、まあテストではソコソコの点数しか取れない。で、1年くらいしてから
それがいつのまにか理解できてるって感じかな。いつ理解したのか知らんがな。
>でも数学が面白いということはわかっているのです。
私が数学が凄いと思った瞬間。
1~100までの足し算。小3の時等差数列の和の公式を1週間考えて、奇数と偶数にわけてなんとか2本の
式にまとめたのに、5歳だか10歳だかのガウスの説明で負けました。(T.T)
中学の図書室で見た科学辞典に載ってたフーリエ変換の公式のeの肩に乗ってたiが複素数だということを知ったとき。
その頃はiといったら0から順に増えていく変数(カウンター変数はi)だと思っていたので衝撃だった。もっとも、
nも混じってたんでその頃はかなり悩んだ訳だが。
exp(i x) が cos(x) + isin(x) になるのを知ったとき。もちろん授業でやることには常識になっていたがな。
exp(A t)が計算できることを知ったとき。もちろんAは行列な。
RSAを知ったとき。これはかなりの衝撃だった。もちろん中学生の時だが。今でも証明は出来ないんで、やはりコレの凄さは本物だ。とりあえずフェルマーとオイラーを一発ずつ殴っておきたい気分??
証明できるようになれば、なんだそんなことか、ってなるんだろうけど、なんというか、
手品見せられた気分でイライラするな。出来ねーだろそんなことって感じで。
他にもいろいろあるが、とりあえずこんなところで、とめておくか。
スマン。3箇所ほど変なところが。見直ししろよな、といわれても仕方の無いミスです。
私が数学が -> 私が、数学は
授業でやることには -> 授業でやる時には
改行忘れ1行
今度からプレビューちゃんと使います。ゴメんなさい。
なるほど。
exp(A t)ってどこかでやったような気がするけどなんだったけかなぁ
全然身に着いてません。