[速報] S.P. ネルセット/G. ヴァンナー/E. ハイラー「常微分方程式の数値解法I 基礎編」シュプリンガー東京

[Springer ]
 や〜,ぷちめれ始めて・・・何年だ? 今回初めてワシが関わった本をご紹介することになるのだが,何かキンチョーするね。とりあえず,思いついたことをボチボチつづっていくことにしよう。しかし,ん〜,まだAmazonでは扱っていないようなので,出版元のページにのみリンクを張っておくことにする。実は現物もまだ届いていないので,写真は届き次第掲載します。
 つーことでようやく出ました! 6500円! 高い? バカモン! 原書はコレだ↓ 値段をよく見ろ!!

 不思議だ,何故原書が18000円もするのに,手間をかけた翻訳の方が6500円で出てしまうのか,ワシはこの経済の不思議に首をかしげるばかりだ。
 それはともかく,値段だけでも超お買い得であることがお分かりかと思うが,他にもいいことがある。
 1.世界広しといえども,本書(と原書)ほど,常微分方程式の数値解法について網羅的に,しかも「数値解法の」理論をがっちり書いたものはない。TeX使いは読まずともTeX Bookを手元に置くように,常微分方程式を数値的に解くことを仕事とする人間も本書を同様に揃えておくべきものなのである・・・って偉そうだが,役に立つことは保証いたします,ええ。
 2.KOUYAのような輩を引っ張り込んで翻訳なんてさせて大丈夫か?・・・といぶかる向きも多かろうが,いいやご心配には及ばない。監訳者がほぼ全部手を入れて徹底した書き直しを行っているのである。これはもう「監訳者」の仕事とは思えないが,それ故に,本書は三井斌友「訳」と言うべきものになっているのである。安心して購入されたい。
 3.この基礎編に続いて,「硬い方程式」向きの解法を解説した続刊が近々(たぶん)出るはずである。それを読むためには,まず本書に目を通す必要が絶対にある。もし本書で挫折したら?・・・いやいやいやいやご心配には及ばない。その時には続刊の方を買わなければいいだけの話だ。本書で挫折した人間が続刊を読めるはずがないのである(ヒドイ)。その意味では,無駄な出費を避ける為にも有用な本と言えよう。
 つーことで,ワシの予想ではあっという間に絶版になるであろうこと確実なレアアイテムである。出たら即買い! でないと後で公開すること間違いなし! 買え! 買っておくのだ〜!
 つーことで,Amazonの方に出たらこのblogにもBannerを張っておくことにしよーっと。

11/30(金) 掛川->浜松・曇

 どんよりどよどよの日。冬将軍が力をつけるにはまだ時間がかかるということか。どうせ寒いなら,太陽の下で寒風にさらされたいものである。
 近頃のワシの現実逃避はこのサイトのWebログ観察である。このサイトは大学とか技術系の企業とかからのアクセスが多いのだが,
 kemnpus.cs.***.ac.jp
というようなFQDNを見つけたりすると,ちょっと幸せになる。是非ともiyamiとかunagiinuからのアクセスも欲しいな。
 ちなみに我が家の2台のAthlon64 X2マシンはbeboyとhanaotoなのだが,元ネタが分かる男は少ないだろうな。詳細は腐女子の方々に聞いて下さい。後者についてはなるべく年嵩(いわゆる負け犬)の方がよくご存じかも知れない。
 MacBookを使うようになって思うのだが,削除時に使うのがDeleteキーなのかBackspaceキーなのかでWindows使いかMac使いかが判別できるんじゃないかしらん。
 では行ってきます。

11/29(木) 掛川・曇

 朝起きて飯食ってさあ出勤しようとしたら,段々と頭痛が酷くなってきたのでバファリンを飲んで一休み。2時間程横になって夏目漱石「私の個人主義」を拾い読みしていたら回復した。うーむ,基本的にはバファリンの作用のおかげなんだろうが,漱石先生の功徳も多少はあったかも。
 ワシが査読した別の某論文,採録となったとのこと。めでたい。いくら合理的判断を尽くしたと言っても,rejectって気分が悪いモンなぁ。それなりにキャリアを積んできた人が,力を込めて書いてきたものであるから,通るに越したことはないのである。
 しかし今回別の論文査読もしてみて改めて思ったのだけど,最近のワシの査読報告書は異常な程「くどい」「ねちっこい」のである。所詮は×××博士号しか持っていないワシであるから,人様の論文を読む時には常に勉強させていただこうという姿勢で読み込むようにしているのだが,最近はそれなりに知識と経験を積んできたせいか,大分理解が進んだ(錯覚かも)ようで,結構面白く感じるようになってきたのである。そうなるとこのバカは調子に乗って引用文献を取り寄せて比較参照したり(ヤナ奴だね),ちみっとプログラムを書いて追試してみたり,何度も文章を読み返したりと,ネチネチ論文を突っつき回し始めるのである。
 そうなると,字句の間違いというミクロレベルから,論旨の不明確さ(ワシの理解度を超えているだけかも)というマクロレベルまで,「あれ?あれ?」と疑問に思うところが結構出てくる。それを箇条書きにして,文章を整えて,何度も推敲しているうちに・・・ワシの査読報告書は,何やらもわ〜んとした怨念というか臭気というか邪気というか,そういうものが発せられる「情念の固まり」となってしまっているのである。考え過ぎならいいんだけど,どうも他の査読者のように,指摘すべきことのみをあっさり書いたものと比べると,恐ろしく「粘度が濃い」ように思えるのである。
 よく考えてみれば,査読報告書なんて所詮は匿名だし,業績になるわけではないし,てきとーにやっておけばいいものではある。ワシとてそうそういつもいつもねちっこく書いているわけではないし,ワシごときが読んだところでアラなぞ一欠片も見あたらないパーペキな論文というものもあるのだ。今回2回連続「情念どろどろ」査読報告を書いてしまったのは,そういうものが書ける要素を持った(なんて持って回った言い回しだ)論文相手だったからで,そういうものに対してはどーもワシは過剰にあれこれ書いてしまうようなのだな。だけどそれは別段,論文著者を貶めているんではなく,それだけ真剣に読み込ませて頂いた,という証なのであるから,まああまり気を悪くしないで頂きたいのであります。
 ・・・あ,今週に入って頭痛が頻繁に訪れるのは,あの情念の固まりを3ページも書いたせいなのかも。
 本日は他に,
 ・T君作成のWebRobot最新版をCore2Quad 6600マシンで動作させる
 ・来週火曜日開催の当学・産学官連携フォーラム用ポスターを作成
 ・I君卒研のプログラマ(MySQLでTransaction初体験)
等をこなしたが,バファリン様の効き目あらたかなせいか,一日中薄ぼんやりしていたような気がする。おかげで我が家の灯油の備蓄は切れたまま。明後日までオンボロクーラーで我慢しなきゃ。
 BSマンガ夜話を見たら寝ます。

11/28(水) 掛川・?

 ごほげほごほ。咳は少し出るけど,それよりは頭痛が酷くて,昨日はさっさと帰宅して早々に寝た。で,現在,録画してあったBSマンガ夜話を見ながらこれを書いている。夏目さんの批評は相変わらず鋭いなと感じるが,しかしそれはあくまで批評であって,漫画作品そのものとは違うものなんだなぁと,この年になってようやく分かってきた。バラバラに解体された絵の断片にナレーションをつける作業が批評で,解体される前のストーリーを語る絵の固まりが漫画なんだよな。夏目さんの批評が優れているのは,それが一つのアナザーストーリーになっているということなんだろうな。
 著作権を巡る昨今の状況の仲裁に入った珍しい記事。しかし具体的な打開策を提示出来ているわけではないから,「まあまあ両社とも頭を冷やして」という以上の効果は期待出来そうもない。現状では互いに一歩引いて痛み分け,という線しかなさそうだが,どっちにとっても「一歩引く」ことに対する強い危機感があるから,対立が激化している訳で,今更「まあまあ」と言ったところで何の効果もない。結局この記事は無駄バイト数を費やしているだけ,というだけのものでしかないな。仮にもKOのセンセーなんだから,優秀な学生さんを動員してもいいから,もうちっと頭をひねって頂きたいものだ。
 昨日は東京のホテルでダウンロードしたFedora 8を,Core2Quad 6600マシンにインストールしてみた。CentOS 5ではあれほど難航した作業があっさり完了。あ,公平のために言っておくけど,Windows XPもさくっとインストール出来たのだが,元々の目的はLinux環境を構築することにあったので,そちらは消えて頂いた。
fedora8_x86_64_desktop2007-11-27.png
 まだnVidia純正ドライバを入れていないので,GNOMEの表示はチトもたつくが,実用上は問題ないレベル。しかしWindowsでもそうだったのだが,サウンド関係のドライバが見つからないようである。
 毎度恒例の行事になったBNCpackの並列ベンチをやってみる。うーんさすがQuad-coreである。バッチリ4並列の性能が出せる。
cpu_quadcore.png

[user01@cs-minerva mpi]$ mpirun -np 4 ./test_mpimm
MPI_MUL_TIME(Dim:512x512, Procs:4): 0.812689
---------------------------------------------------------------------
BNC Default Precision    : 128 bits(38.5 decimal digits)
BNC Default Rounding Mode: Round to Nearest
---------------------------------------------------------------------
LAM_MPI, MPI Version 1.2
---------------------------------------------------------------------
MPI_MUL_TIME(Dim:512x512, Procs:4): 11.334403
[user01@cs-minerva mpi]$ mpirun -np 2 ./test_mpimm
MPI_MUL_TIME(Dim:512x512, Procs:2): 1.401398
---------------------------------------------------------------------
BNC Default Precision    : 128 bits(38.5 decimal digits)
BNC Default Rounding Mode: Round to Nearest
---------------------------------------------------------------------
LAM_MPI, MPI Version 1.2
---------------------------------------------------------------------
MPI_MUL_TIME(Dim:512x512, Procs:2): 20.546149
[user01@cs-minerva mpi]$ mpirun -np 1 ./test_mpimm
MPI_MUL_TIME(Dim:512x512, Procs:1): 3.026383
---------------------------------------------------------------------
BNC Default Precision    : 128 bits(38.5 decimal digits)
BNC Default Rounding Mode: Round to Nearest
---------------------------------------------------------------------
LAM_MPI, MPI Version 1.2
---------------------------------------------------------------------
MPI_MUL_TIME(Dim:512x512, Procs:1): 46.027995

 そろそろMPIは止めたら?という声もあるが,どうもコンシューマPC向けにはOcta-coreがすぐに出るという状況ではなさそうなので,ワシみたいな貧乏人が大規模並列をやらかそうとすると,何台かのマシンを組み合わせる必要がある。だもんで,当分はMPIも捨てるつもりはない。ま,gccもOpenMPに対応しているから,そちらもボチボチ対応させようとは思っていますが,ね。
 だいぶ気分が改善したので,今日も一日頑張ります。
 あ,帰ってきたら前の防衛省事務次官が逮捕されたそうな。しかしその妻も逮捕されることがあるんだ。ふーん。
 論文著者校正,2カ所訂正(ワシの元原稿の間違い)して三美印刷様へ返送する。うーん,これで12月中には発行となるわけだな。昨年の今頃思い付いたネタだったから,ちょうど一年後にまとまったことになる。これからはコンスタントに査読論文を増やしていかねばなぁ。がんばり末世(古)。
 編集委員さんから,「ここんとこ書き直して」というメールが届く。ご指摘のことはよく分かるので,ご要望通り査読レポートを修正して返信。ということで

3ページにもなるような査読レポート書かすなゴラァ!

と訂正致します。
 勉強してからBSマンガ夜話を見て寝ます。

J.-M. Muller, “Elementary Functions — Algorithms and Implementation –” 2nd ed., Birkhauser

t[ Amazon ] ISBN 978-0-8176-4372-0, ¥7930
elementary_functions_1st_and_2nd_ed.png
(向かって左の紺の表紙が第二版,隣の緑の表紙が第一版)
 以前,初等関数の近似多項式についての論文を査読した時,著者の方に基礎文献として紹介したのが本書である。以来,折に触れて本書の第一版(緑の表紙)をつらつら眺めていたのだが,昨年,少し書き足しを施した第二版が出たので,この際,第一版の前書きの日本語訳をここに載せて,本書の紹介と代えることにした。類書は幾つか出ているし,日本でも浜田のものがあるが,最新の情報を網羅したものとしてはこれに勝るものはない。
 つーことで,

どこかで日本語訳を出版させてくれません?

と言っておこう。専門書だから10万部も売れる本には絶対になり得ないが,一万部程度は堅いんじゃないか(と言っておくテスト)。半年あれば下訳は完成させ,一年あればチェックも含めて完璧なものをお出し出来ると思いますぜ,旦那。
——————————————————————
 基本関数([訳注] “Elementary Functions”は「初等関数」と訳すのが普通だが,「簡単な」という意味と解釈される恐れがあるので,本書では「基本関数」と訳すことにした。)(三角関数,指数関数,対数関数等々・・・)は,数学において頻繁に使用される関数群であり,これらを正確かつ高速に計算することは,コンピュータ計算研究において,一つの主要な目標となっている。本書の目的はこれらの基本関数の計算と(ソフトウェア及びハードウェア指向の)アルゴリズムの理解に必要となる理論的背景を解説するとともに,正確な浮動小数点数を得るための関連知識も述べることであり,特定の関数や浮動小数点演算システムにしか適用出来ない「料理レシピ」を与えることではない。あくまで,読者のあなた方が,自分の計算機システムにアルゴリズムを実装し適応させることが出来るような知識を与えようとしているのである。
 本書を執筆するに際して,私は二種類の読者を想定した。一人は,これから(ソフトウェアもしくはハードウェアのパーツとして)浮動小数点演算システムを作ろうとしている,あるいはそのアルゴリズムを研究しようとしている専門家(specialists)である。もう一人は,現在のコンピュータや電卓の内部において,基本関数の計算にはどのような手法が使用されているのかを知りたいと思っている趣味人(inquiring minds)である。従って,コンピュータ科学や応用数学を専攻する上級学部生・大学院生のみならず,浮動小数点演算システムを実装するためのアルゴリズム,プログラム,ハードウェア回路を設計する専門家にも,自分たちの関連分野に役立てようとしているエンジニアや自然科学研究者にも,本書は等しく役立つものとなっている。本書の内容は,コンピュータ科学や数学の基礎知識があれば大概理解出来るものであるが,そこで必要となるコンピュータ演算の基本記号については第一章に目を通して思い出して頂きたい。
 本書にどのような内容が記述されているかはこの第一章に書いてある。基本記号について記述されたこの章の以降の内容は。大きく三つに分類される。第一部は2章で構成されており,基本関数を多項式や有理(多項式)関数で近似するアルゴリズムを記述してるが,可能な限り,数表も掲載してある。第二部は3章で構成されており,「シフト加算(shift-and-add)」アルゴリズム,すなわち,シフト(shift)と加算だけから構成される,ハードウェア指向のアルゴリズムを解説している。最後の第三部は3章から構成されており,精度が重要視される際には有用な事柄について議論している。
 本書と同じ基本関数を扱った過去の労作(Hartらの“Computer Approximation”,Cody \& Waiteの“Software Manual for Elementary Functions”など)には,多項式近似式や有理関数近似式の係数表が沢山掲載されているが,本書にはあまり載せていない。それは本の分量を減らすためであるが(シフト加算アルゴリズムを掲載しようとしたせいでもある),今ではこれらの係数の計算はMapleなどの数式処理システムを使って簡単に計算出来るようになっているからでもある。私の一番の目的は,基本関数がどのように計算され,どのように使うことが出来るのかを説明することなのだ。更に言えば,前述の歴史的労作は,ソフトウェアで実装することに焦点を当てた物であるが,今では基本関数の計算の多くは(少なくみても部分的には)ハードウェアに実装されるようになっており,この労作で述べられている物とは異なるアルゴリズム(CORDICに代表される,区間数表ベースのもの,シフト加算を用いているもの)が使われているのである。私はこういった幅広い手法の解説をしたいと念願していたのだ。また,数年前までは1, 2bitの誤差があってもさして問題視されていなかったが,今ではもっと高精度なものでなくてはならない事態となっている。精緻に丸められた(exactly rounded)関数値を与えること,即ち,常に真の関数値に最も近い浮動小数点数(machine number)を返す機能(少なくともある変数領域,ある関数については)が求められるようになっているのである。これについては単精度計算において達成している実装系が存在している。私はもっと高精度でもexactly roundedな関数値を得ることが出来るということを本書で言いたいのである。
 なお,参考文献で提示したBiBTeX データベース,本書で提示したMapleプログラム,正誤表については本書のWebページから取得することができるようにしてある。
——————————————————————-
 つーことで,いい本なので推薦しておく次第である。