MATLAB/Scilab で理解する数値計算

著者櫻井 鉄也
発行所東京大学出版会
刊行2003/10/14、刷:2012/08/27(第7刷)
入手九大生協で購入
読了2021/02/28

だいぶん前に買っていた本だが読んでいなかった。コロナ禍で在宅勤務が増えたからか、 MATLAB 最新バージョンをお試しで使えるようになっていたのでこの機会に使ってみようと思い、 以前に買っていたこの本で MATLAB を勉強した。お試し期間が終わった後は、 MATLAB 互換のフリーウェアである GNU Octave を使った。 MATLAB/Octave を使ってみると、行列を使うことを前提とした独特のプログラミングのコツが 必要とされることがわかった。これも慣れてみると面白い。 MATLAB と Octave では微妙な違いもある。 Octave が MATLAB を追いかけているようなものなので、Octave の方がやや性能が劣るかというと 必ずしもそうではないところが面白い。たとえば、常微分方程式を解くソルバーは、Octave の標準は LSODE (Livermore Solver for Ordinary Differential Equatoins) なのだが、 これは MATLAB には装備されていない。

教科書としての特徴は、数値計算を学ぶときに、お手軽に使える MATLAB を使って、少しずついろいろ試してみましょう というものだ。私が学生の頃は、数値計算の授業はふつうの講義だったが、今時は MATLAB などを使って、簡単にいろいろ 試しながら行くのかもしれない。確かに便利である。本書の MATLAB に関する記述は簡潔で、全容を勉強するというよりは、 いろいろな例で慣れていきましょうという書き方である。

数値計算の記述の方は、項目は初学者向きだが、説明は簡潔過ぎて不親切なところも多い。これは、講義テキスト用として 書いてあり、講義で補足することが前提で、自学自習用とは考えていないのかもしれない。 そのほか、式の誤りが散見される(以下の「細かい点で気づいたこと」参照)。 3.3 の Padé 近似のあたりは、著者の専門に近いらしく、やや高度な内容が入っている。 5 章の共役勾配法までがメインらしく、6 章以下はかなりおざなりな感じになっている。6 章の固有値問題は かなり不親切で、いろいろな記述が論理的につながっておらず、これだけ読んでわかる人はいないだろう。

内容としては行列計算関係が多い。だから MATLAB を使っているのか、MATLAB を使うからそうなるのかもしれない。 地球科学者のための数値計算のような授業があるとすると、まず微分方程式から行くような気もするが、 この教科書では微分方程式の記述はわずかで、MATLAB に備わっているソルバーの紹介だけにとどまっている。

細かい点で気づいたこと

この本(第7刷)で MATLAB ではすでに古くなっていること

以下のコマンドは R2020a 版を使うと、使うなという警告が出る。 しかし、Octave では普通に使える。

分かりづらい点

ミスプリ(第7刷)

誤りと思われる点(第7刷)