2004年10月27日

プログラミングのための線形代数



/

献本頂いたので、しばらく読んでいました。

タイトルだけだと「はて、どういう本なんかいな?」という疑問が湧くわけですが、これについては「はじめに」で触れられているとおり、「コンピュータに関わる方を主な読者と想定した線形代数の参考書」です。

固い教科書風ではなく、かといって謎の幼女たちが登場するような萌え本でもありません :-)。「プログラミングのための」というタイトルですが、プログラムのコードで埋め尽くされているわけではなく、数式と文と図が大半の中、ちらほらとRubyで実装してみたコードがあるという程度です。コードも、Ruby本来の最適な文法ではなく、ほかの言語への移植性を考えた書き方になっています。数学書なのでもちろん(?)組版はTeXです。

最初にgnuplot+Rubyを使い、対角行列による空間変形のアニメーションを見せているのが掴みとしてよいですね。本書にはCDが付いていないのですが、このサンプルはオーム社のページからダウンロードできます。とはいえこれを見ただけでは皆「フーン」で終わってしまって数学の参考書にはなりません。ベクトルの定義、行列と写像、アニメーションで見せていた変形の具体的な数学的結果、LU分解、固有値、(…えーと、3章以降は理系崩れ文系の私にはかなり難しいのでもっと読んで勉強します…)。

1つひとつは授業だとおそらく10分で寝てしまっている内容なのですが、本書はできるだけわかりやすくなるよう、図などをふんだんに用いて解説しています。特に本書で秀逸なのは、随所に散りばめられたコラムで、知的好奇心を刺激したいというだけならこのコラムだけを拾って読んでいくだけで楽しく、頭が良くなった気になれます :-)。

本書を読んでいると、行列を習い立てでビットマップ回転を試していた頃を思い出しますね(X68KのBasicで、ちまちま1ビットずつ浮動小数点演算で計算したので遅かった…)。読み進むにつれ、「あぁあのテクニックはこれを応用してできるのかー」「お、これはアレに使えるのかも?」といった考えも浮かんできます。もう少しコードが紹介されているといいかなぁと思いますが、『線形代数のためのプログラミング』にはしたくないという著者の前書きのとおりなのでしょう。

数学を極めよう/極めたという人には端々の説明が気になってお勧めは難しいかもしれませんが :-)、卒業以来すっかり離れてしまって線形代数を今一度振り返ってみたいという方、あるいは線形代数を学んでいるんだけどさっぱりわかんねぇという方は書店で手に取ってみてはいかがでしょうか。

関連書籍にある『ゲーム開発のための物理シミュレーション入門』もおもしろそうですね。



/