12/1(日) 駿府・晴

 師走初日である。一気に寒くなって秋をすっ飛ばして冬になった感。富士山がきれいな季節になってしまったのである。

 「多倍長精度数値計算」,Amazonの順位を見る限り「LAPACK/BLAS入門」程度には売れているらしい。せいぜい初刷分のコストを吸収できる程度には在庫が捌けてほしいものである。黒字になって困ることはないからなぁ。高いけどよろしくお願い申し上げます。
 そーいや,早速誤字脱字のご指摘があったので,慌てて正誤表を追加した。こーゆー時にはやっぱりGitHubにサポート情報一切合切置いておくのは良い判断である。出版社が潰れてもファイルが残るというところが良い。いずれワシのサイトの情報は全部GitHub,ResearchGate,Researchmapに集約しておくことになるので,定年カウントダウンになったらボチボチやっておくことにしよう。

 「決算!忠臣蔵」を神さんと映画の日の本日見に行った。吉本興業バックアップ映画なので,そこそこ楽しめたが,クライマックスの討ち入りシーンがないというのはどーにも肩透かし感が拭えない。溝口健二の「元禄忠臣蔵」でも見るとするかな。大河ドラマでは「峠の群像」の伊丹十三,「元禄繚乱」の石坂浩二,いずれも良い殺されっぷりであった。ワシはあれが見たいのである。

 Python数値計算入門,とりあえず連立一次方程式の4章分の手前まで完成。問題はこの先で,LAPACK/BLASベースのSciPyを使う以上はせいぜい密行列用(scipy.linalg)と疎行列用(scipy.sparse.linalg)の2章にまとめてしまうのがスマートだと考えている。行列の固有値はその応用編という感じ。無駄に分厚くなるよりは,線型計算はカジュアルにお気楽に使いつつ,パフォーマンスと精度には気をつけてねという記述になれば良いかと。今月中にはここを何とかして一気に後半部分の下書きは完成させたいなぁ。

 ということであと一月頑張りましょうぞ。

幸谷智紀「多倍長精度数値計算」森北出版

幸谷智紀「多倍長精度数値計算」森北出版

[ Amazon ] ISBN 978-4-627-85491-8, \4200 + TAX

 いやぁ長かった長かった。本来なら昨年のうちに発売されているはずのものが,「可能な限り厚く書け」という方針に変更され,巻末のGNU MP(抜粋),MPFR(完璧),__float128(完璧)のリファレンスまで付録に付くことになってしまったからさぁ大変,シコシコ作業してどーにかこーにか248ページの,ワシの単著としては最大のページ数を誇るテキストが出来上がってしまったのである。担当編集者が途中交代したりして「こりゃ出ないかな?」などと疑心暗鬼になりつつも何とか今日の晴れの日を迎えたのだからとりあえずは良しとしよう。表紙のプログラムが本文で使っているC, C++プログラムとは似ても似つかぬものになっているなどと無粋なことをいう奴は嫌いなので無視することにして,ワシはこの分厚くてド高いテキストをしみじみ眺めて悦に入っているところなのである。

 そう,本書は高価である。税抜き4200円! 吉野家の牛丼並を10杯食える値段になってしまった理由はただ一つ,特殊過ぎて売れそうにないからである。・・・んなことは分かっている,だからペラい「LAPACK/BLAS入門」程度でいいんじゃないかという提案もしていたのだが,「あれじゃペラ過ぎて演習書としては物足りない」とぬかす向きがあったらしく,「どのみち売れないんだから,そんなら分厚くしてくれ」ということになった由。開き直った結果の高額書籍なのである。つーことで,長い数字並べてヘラヘラ楽しめる,そう,「π 円周率1,000,000桁表」などをお持ちの方に置かれましては是非とも座右に置かれることをお勧めしておく。何を隠そう,ワシも本書を座右にたくさん置いているのであるからして(当たり前だ),数字マニアにおかれましては,スクラッチからプログラミングする非効率さも知っておかれては如何かと思う次第なのである。

 そう,今時,多倍長計算,即ち,標準的な整数型(int, long)や実数型(float, double)を越える桁数の計算を四則演算レベルから作成するなどということは止めた方がいいのである。趣味で作るならご自由であるが,それにしても,GNU MP(GMP)やMPFR, QDといった高速かつ機能豊富なオープンソース多倍長演算ライブラリがタダで自由に使えるご時世に,それらの機能を一顧だにせずに唯我独尊的なプログラミングをすることは労力の無駄,車輪の再々発明よりたちが悪い暴挙と言わざるを得ない。本書はこれらのライブラリの解説と関数一覧(QDは初めてかしらん?),CやC++のプログラミング例を豊富に取り揃えて,あまつさえ,手間のかかるベンチマークテストまでやってお示ししているのであるから,買えとは言わないけれど(買ってくれると嬉しいけれど),スクラッチから多倍長精度プログラミングをやろうという方は一通り目通ししておくべきであると断言しておく。まぁ,Webの世界には既にこれらのライブラリをベースとした,MPACKみたいな高速計算ライブラリも多数あるので,そちらを見てもらうのも良いが,高度過ぎる複雑なライブラリを見るより,単純なCやC++テンプレート例を読んだ方が取り掛かりには良いのではないか・・・どうかは皆様で判断して頂きたい。ま,当面売り切れる本ではないので,多倍長数値計算をする必要が出てきたら,ちらとでも眺めて頂ければ幸いである。

 

Python数値計算入門まえがきの下書き

 次年度の「数値解析1」のテキストを新たに作る予定なので,「まえがき」っぽいものを書いてみた。ろくすっぽ書いてもいないくせに完成稿を目の前にしたかのような文章を書くのは自分にプレッシャーをかけるためである。年内には下書き終了,完成は来年2月の予定だが,さてどうなることやら。


 本書はPython 3のNumPyおよびSciPyを利用することを前提に,数値計算の基本を解説したテキストである。浮動小数点演算の基礎から,偏微分方程式の数値解法まで,Pythonスクリプトを動かしながら理解するというコンセプトで執筆したつもりだが,果たしてその目的が達成できているかどうか,その判断は読者に委ねたい。
 ベースとなっているのは「ソフトウェアとしての数値計算」(https://na-inet.jp/nasoft/)で,2009年までに積み上げてきた講義資料に基づく公開Web教材である。完成以来10年経つと,さすがに記述が古びてくるので,書き足すなり書き直すなりする必要を感じていたところ,奇特な方から「Python本を書きませんか?」というお誘いがあり,自分としても近年最も勢いのある動的言語を本格的に使ってみたい欲求があったので,ホイホイと誘いに乗って古い講義ノートの虫干し作業がてら,書き出し始めたのである。
 実は著者の勤めている大学ではMATLABという,高価だが信頼性の高い数値計算ソフトウェアのサイトライセンスを導入しており,ここ数年はExcelとMATLABを使いながら講義を行っていた。しかし,MATLABのライセンスは卒業すると消滅してしまう。何より,高価なソフトウェアの癖に更に銭を取られる有料パッケージが存在していたりするのが気にくわない。Pythonならば基本,著名なパッケージは無料で使える。これは大きい。
 何より,PythonではDeep Learning用のTensorFlowやPyTorchすら無料で使えるのだし,これらの下支えとしてNumPyやSciPy,Autograd等の基本数値計算パッケージが存在している。今の時代向きの「ソフトウェアとしての数値計算」はこれらの基本数値計算パッケージを前提として語るべきであろう。
 ということで書き出したのはいいのだが,内容的に古い所があり過ぎて,全面改稿したりバッサリ削除した章が続出し,当初の予定通りにはなかなか進まなかった。著者の個人的な事情もあり,遅れに遅れて何とか次年度のテキスト印刷期限に間に合ったという次第である。それでも,不慣れな言語に四苦八苦しながら,良く出来た数値計算パッケージと戯れるのは楽しい作業であり,関数を呼び出すだけで面倒な処理がスイスイできるようになったのを体験するにつけ,時代は進んでいるなぁと,スクラッチから自分の数値計算ライブラリを構築してきた年寄としては感慨深い。その分,数値計算の初心者にとっては敷居が高いと感じるかもしれないが,折角先人が積み上げてきたソフトウェアの上に立つことができている状況を楽しむためには,その高みに親しむことも必要であると,あえて手加減せずに具体的な問題を提示してみたのである。実際に動かせるスクリプトを目の前に突き出しているのだから,大いにチャレンジして頂きたいものである。

10/28(月) 駿府→東京→駿府・晴

 富士山初冠雪以来,定番的な姿が定着したようだ。ようやく,秋らしい気温になり,朝晩は厚手の上着がないと寒さを感じる。

 本日は土日の出勤日の振替休日につき,久々に東京をブラブラしてくるのである。時間に余裕のあるプライベートなお出かけには,旅費節約のため,高速バスを利用する。JRの普通電車を乗り継いでも料金も時間も大差ないのだが,高速バスなら,途中,足柄SAで休憩する以外はノンストップで,ぐっすり寝られるのがよろしい。こういう富士山のベストショットも狙えるのがまたよろしい。

けふの富士山,ベストショット

 午前11時過ぎにバスタ新宿に到着。末廣亭でいの一番から昼席を聞く。今日のトリ,林家木久扇師匠を目当てに来たのである。

主なお顔付け一覧。夜席のメンバーは古典落語をじっくり聞きたい向きにはたまらんだろうな。

 昭和こいる師匠がピンで出ていたのを聞けたのがラッキーであった。お目当ても相変わらずの彦六師匠ネタで爆笑させていたのはさすが。今日のバージョンは談志モノマネが多く混入していたが,こういう声色をさせたら立川流の誰よりもうまいんじゃないのかな。

 昼席がハネたら,情報処理学会の編集委員会に出席。生出席したのは6名,スカイプ参加10名であった。次年度からこのビルが大規模修繕に入るそうで,そうなったときの会議場所の確保が心配とのこと。金満大学のサテライトキャンパスか,都内の大学でも借りれるといいんだけど。しかし情報処理学会の事務局はどこに移転するのやら。以前は田町にあったハズで,あれは東芝だかNECだかの好意によるものだったのかしらん?

本日は本来お休みだそうで,会議はこの一件のみ。

 会議終了後,秋葉ヨドバシを散策してUSB Type-Cケーブルを一本購入。行きの高速バスにはUSB Type-Aのコネクタしかなく,スマホはいいのだが,Note PCの充電ができなかったのである。ということで購入したのだが,帰りのバスには普通の電源コンセントが備えられていて,このUSBケーブルの出番がなかった。世の中そーゆーモンである。

 帰りの足柄SA,めっきり寒くなって吐く息が白くなった。このあたりも雪の季節が近づいているのであろうなぁ。

足柄SA下りの看板

 さて,Python3本であるが,無理矢理でも今年前期に作ったスクリプトをぶっ込んでいこうと作業したものの,創刊単位はいきそうにない。つか,ベースとなっているワシのテキストの記述が,スクリプトにそぐわないところが多く,かなり書き直しが必要だなぁということが改めて分かった。
 つーことで,前半4章分については何とかなりそうであるが,それ以降は,スクリプトに即しての解説に改める必要がある。また,アルゴリズムをそのままスクリプト化しているところはいいとして,NumPyやSciPyの関数をそのまま使っているところはどうするか。チと思案のしどころである。とりあえずのリミットは年内,手直しが年明けといったところか。まずは身内用のテキストとして仕上げてしまう所存。しばしおまち下さい(こればっか)。

 ・・・と書き終えたところで清水ICを越えた。20分遅れで静岡駅到着らしい。帰ったらさっさと寝て明日に備えます。

10/6(日) 駿府・晴後曇

 10月超えてもまだ日中の気温が30℃を超える日が続く。台風は19号が発生し,次週の三連休には九州・沖縄近海に近づいてきて,その影響が出てくるという予報。最近は週末引きこもっているので,世間的な休日が荒れようがどうしようがどうでもいいが,収穫期に入った米などの農作物に被害が出るのは困る。全世界的に温暖化がじわじわ進んで16歳の少女まで大演説を国連でブッこく時代,ワシが死ぬまでにどんだけ強力なモンスター台風が発生するのか,楽しみでもあり,怖いようでもあり。せめて自宅リビングのガラスに保護シートでも貼らなきゃなぁとツラツラ思う。

 「多倍長精度数値計算」(森北出版),Amazonにページができてた。

 画像の背景のプログラムが本文で説明しているものと違うなどというツッコミは聞かなかったことにする。10月発売予定と言いまくっていたのだが,消費税増税前の駆け込み需要で印刷所が混んでおり,11月22日発売に遅延してしまったのは当方の不徳の致すところではないので謝らないよ。しかし8%に据え置かれた新聞じゃないので10%の消費税丸かぶりで¥4620っつーのは高いよなぁ。まぁGNU MPの一部とQDとMPFRとfloat128リファレンス込の,部数の見込めない本なので致し方ないところです。草稿送りつけた多倍長精度関係者には問答無用でお配りしたいところではありますが,何せ部数が部数なもので(って聞いてないけどせいぜいコミケ島角サークルの新刊ぐらいと想像),届かなかったらすいません。サポートページはすでに作ってあるんだけど,発売日と同時にリンク貼って公開予定。・・・しかしシンドかったので,MPACKの解説が欲しかったとか抜かすと丑の刻参りするぞコラ。無い物ねだりするより自分で書いてみてはと言っておく。ご本人の英語解説はこっちにあるので買うとよろしい。

 Pythonプログラム,ぼちぼち追加しつつあり,Autogradパッケージを使って遊んでみた。額縁ょ〜などというものの宿命で,あれこれ余計な事務作業と書類作業が無限に割り込んでくるので,Jacobi行列で遊ぶまでには至ってないけど,接線引きまくって元の関数をイメージするグラフを書くところまではたどり着いた。

 次は多段法・・・など言い出したら全然終わらないので,先に偏微分方程式の計算事例を2,3積み重ねてケリにしたい。10月いっぱいの予定,忘れてませんのでしばしお待ち下さい・・・って何度目だこの言い訳。

 さて,神さんから委託されている明日の朝ごはんの準備をしよう。