書評
『実例で学ぶ「精度保証付き数値計算」理論と実装』(中尾充宏・渡部善隆 著)
2015年03月14日
小林 健太
こばやし けんた
一橋大学 商学研究科
近年、数学の様々な分野で精度保証付き数値計算の応用を見かけるようになってきた。精度保証付き数値計算とは、計算機を用いることで数学的に厳密な結果や証明を得る手法一般をいい、数値的検証法とも呼ばれている。本書は、その精度保証数値計算のうちでも特に、偏微分方程式に対する応用に力点を置いて書かれている。
本書の内容に入る前に、少しばかり本書の位置付けについて説明したい。私は大学院生の時から精度保証付き数値計算の分野で研究を行ってきたのだが、この分野を勉強する上で最初に読んだのが、1998年に日本評論社から出版された
中尾充宏・山本野人「精度保証付き数値計算-コンピュータによる無限への挑戦」
であった。この本は、精度保証付き数値計算の偏微分方程式への応用について学ぶ際には基本書と言われていた本であるが、ページ数に対して密度が濃く、関数解析の理論展開にある程度の慣れが必要であり、読むのにかなり苦労した覚えがある。また、アルゴリズムの概略は載っているものの、具体的なコードは載っていないので、精度保証の理論を実際に計算機に実装する際のハードルも高かった。さらに、その後の精度保証も長足の進歩により、この本の内容も古くなってしまい、またこの本自体も絶版になってしまったことから、最新の成果を盛り込んだ新しい基本書の出版が待ち望まれていたのである。
そのような状況で出版されたのが本書である。内容としては、楕円型偏微分方程式に対する精度保証付き数値計算の一般論について、前掲の中尾・山本の内容を含め最近の結果までカバーした内容となっている。楕円型偏微分方程式に対する精度保証は、現在までにある程度理論が確立されており、現在、本書の出版から3年ほど経っているが、今のところ古さを感じさせない内容となっている。
本書の最も良い点は、全てのアルゴリズムについてMATLABおよびその精度保証ライブラリであるINTLABによるコードが明記されている点である。これにより、読者は実際にプログラムを動かしながら実感を持って精度保証を学ぶことができる。式を追うだけでは理解が困難でも、実際にプログラムを走らせてみると理解が進むことも多いように思う。
本書では、精度保証の草創期のアルゴリズムから比較的最近開発されたものまで、多くのアルゴリズムが掲載されているが、初めて精度保証に触れる人は、ひとまず初期のアルゴリズムである、FN-Intによる非線形偏微分方程式の解の精度保証(7.10節)を目標に読み進めていけば良いだろう。読み進む上での注意であるが、本書は、部品を作ってはそれを他の部品と組み立てて新しい部品を作り、またそれを用いて検証条件を構成し、という感じに、川が流れるように構成されているので、ちゃんと頭から読んで行くとスムーズに読めるが、ある特定のアルゴリズムの仕組みを知りたい、というような時に辞書的に使うには向かないだろう。
本書の前書きで著者らは「精度保証付き数値計算のプログラミングは職人芸ではない」ことを納得してもらうのが本書の目的だと書いている。この目的は、プログラミングに関しては達成されているものの、検証条件の構成法自体については、まだ達成まで距離があるように思われる。例えば、本書や精度保証の論文などにおいて「これが検証できればこういう理屈によってこれが検証できたことになる」というような論理が多く展開されているが、精度保証理論の発展を近くで見ていた身にとってはその論理展開の必然性を理解できても、初めて精度保証に接する人にとっては職人芸的に見えてしまう部分が多いように思う。精度保証付き数値計算の理論がどのように構築されてきたのか、その舞台裏についてもある程度の説明があった方が、理解が進み易いと思う。そのような意見を著者にぶつけてみたところ、それだとページ数が倍くらいになるので、本書では無理であったとのことである。是非、もっと詳細な解説をハードカバーで出して頂きたいものである。出来ることなら英語版も期待している。