数値計算

2006年09月05日 火曜日

Donald E. Knuth / The Art of Computer Programming vol.1

最近数値計算物の論文を読んでいると、どうしてもTAOCPへのリファレンスが貼ってあるので必要に迫られて購入。言わずと知れた本なのだが、専門外の専門書を揃えていくとなるとそれなりに予算も必要と言うこともあり3年ほど寝かせてあった訳だが、やっぱり必要な本は買わないと駄目みたいです。(本当は本業に必要なMax Bornの「光学の原理」あたりを買わねばならないのだが・・・)
基礎概念の部分は前半の数学的な部分はきっちり読んで、MIXの部分は読み飛ばして良いかと思っている。前半部分はKnuth先生の「コンピュータの数学」でより細かく書いてあるので、実際の所ここだけで3年は遊べそうなのである。(すでに「コンピュータの数学」だけで1年ほど遊んでいる訳だが。)
情報構造の部分は線形リストにしても木にしても、特定のプログラミング言語における実装を通した使い方しか分かってないところがあるので、ここいらで基礎に立ち戻っても良いかもと思うのである。使い方が分かるのと裏のからくりが分かるというのはとてつもなく異なるレベルなので。もっと別な本でも良いはずなんだけど、この本にたどり着いてしまった以上、他の本を買う木にはもうならないだろう。

2006年01月01日 日曜日

あけましておめでとうございます

ここを読んでくれているみなさん、僕の写真を楽しんでくださるみなさん、昨年はお世話になりました。今年も変わることなくよろしくお願いします。毎年同じですが、「一年の計は元旦にあり」と言うことなので、今年はどのような戦いを展開するか、「戦いの軌跡」と言う題にしているので、戦術や戦略についてざっくりとまとめておこう。

2006年の展望

はじめに概況

2006年の戦いを進めるために、昨年の反省点を元にまぁいろいろ考えてみよう。昨年の正月同様前の会社の上司の言葉を借りることにして、本業はともかく少なくともプライベートな方面では、_攻めと成果にこだわっていこう_と思う。まぁ他にも手をつけていきたい物はあるので、少しずつ新しいことをしていきたいなとは思っている。

2005年12月31日 土曜日

今日で2005年もおしまい

毎年こんな見出しで大晦日の日記を書いているわけだが、ついこないだ2004年もおしまいとか言う記事を書いた記憶がと思ったら、2003年もおしまいとか2002年もおしまいとか言った記事を書いたのも最近のような気がするのは気のせいではない。今年は久しぶりに落ち着いた1年と思っていたのだが、4月から勤務地が変わったので、またまた人間関係もがらっと変化して、めまぐるしい変化があった1年だった。気が付くともう今年もおしまい。今年お世話になった方々はいっぱいいて名前を挙げきれないが、今年1年本当にありがとうございました。来年もよろしくお願いします。
大晦日と言うことで、行く年に思いをはせ、今年はどういう戦いの1年だったか、今年の戦術・戦略とその戦いの成果を主要な分野別にまとめておこう。(と、ほぼ毎年と同じ文章にしてみた。こういうのは毎年そろえておいたほうがよいもので、断じて_手抜きではない_。)

2005年の総括

はじめに概況

2005年の戦況がどのような物であったか述べていくことにしよう。今年は年頭にたてた重いとは全く別なところでばたばた対応させられた1年で気が付いてみると私生活では半分引きこもりっぽい1年となってしまった。全く持って何をやってきたんだかという1年であった。まぁぼちぼち今の生活に落ち着いてきた感はあるので、来年こそ前の会社の上司の言葉を借りて、本業もプライベートも_攻めと成果_にこだわっていこうと思う。

2005年10月22日 土曜日

今日は撮影に出かける

今日はあいにくの空模様だったのだけれど、ののさんより「蕎麦を食べつつ撮影してみませんか?」という蕎麦好き僕にとって嬉しい撮影会に誘われたので、行って来ました。今日のモデルはシホさんです。肌寒い中がんばっていただいたおかげもあって、気が付いたらメディアをほぼ使い切っていました。これまでこんな勢いで撮影したのは無いかもしれない。
今回の撮影ではポートレートを取り始めた頃のような初心に返った撮影をしてみたんですが、最近こういう撮影を忘れていたなあと楽しさを再発見しました。素敵な表情をくれたシホさんに感謝です。楽しい一日でした。よく考えたらシホさんと長時間話をするのは今日が初めてっぽい。
シホさん その1シホさん その2
今日の昼ご飯は深大寺でお蕎麦をいただいたのですが・・・ 田舎蕎麦を頼んだのに細打ち麺の方がきてしまったじゃないですか!まったく、もぅ。 まぁ食べてみたところ蕎麦の香りはこっちの方が強く感じたので、_結果オーライ_ということで良しとしよう。ここは良い感じのお寺さんなんですが、駅から遠いので1年に1回くらいしか行けません…
いつも撮影に誘ってくださるののさん、TOSIさん、肌寒い中がんばってくれたシホさん、今日は1日どうもありがとうございました。

2005年07月13日 水曜日

FFXI廃人人生54日目

今日も誘われることの無かったすごく暇な一日。誘われないのでこっちから誘ってみるかと思ったのだけど、後衛が全然いないので、パーティを作ることすらできず… なんだか挫折しそう。

久しぶりに数値計算で悩む

今日は久しぶりに数値計算(とは言っても回帰分析)のプログラムを書いてました。最近Delphiを習得する必要性が出てきているので、昔書いたライブラリをPascalに移植中。やっぱり新しい言語を学ぶには以前書いたプログラムの移植が良いのかなと思うのだけど、これだと新しく覚える言語のスタイルが身に付かないのよね…
で、2変数の1次式の回帰分析をやっている分には全然問題ないんだけど。3次式にしたとたんに妙なことに気が付きました。一応倍精度浮動小数点型を使っていたんですが、まるで有効桁が足りない。きっちり考えるまでもなく、自明に足りない… うーむ、4倍精度な浮動小数点型がほしい状態。このライブラリ書いたときはそんなことは想定してなかった。結局外側はVBとかDelphiで書いて、計算部分はC++とかで書けということなのかなあ。ちょっと思案中。

2005年03月17日 木曜日

2重積分

今日は1日積分と行列計算に明け暮れてました。いやぁ久しぶりに算数の計算をしたんですが、まだ不定積分が分かっている関数の2重積分とかだったら、余裕で計算できますねえ。今日の積分計算は2変数の正規分布関数を適当な区間で2重積分なので、まぁあまり難しくはなかったな。数値計算するのは多分大変だけど。まぁあとでMathematicaも使ってみましたが、使い方を思い出すだけで半日くらいかかりますねえ。(でも使えるようです。好きなツールだしねえ。)
行列計算はざっくりとだけやれば良かったのでExcelで適当にやらせてみたが、和の取り方がもうちょっと手が込んでいそうなので、計算してみたものの近似にすらならん… うーむ。
ちなみに僕の中では計算すれば何とかなるものは数学の範疇ではありません。すべて算数にすぎません。やっぱ物理数学とかはさんざんやっただけあって、手で計算を覚えてますな。さすがに部分積分とかはめんどくさいのでやりたくないけども。

2004年10月19日 火曜日

うわああああぁ

今日会社帰りに何気なくいつも立ち寄る本屋さんのPC関連書棚を見ていたら… こないだから我慢しているThe Art of Computer Programming Volume 2を発見。(今後うちの日記では「緑の本」と言うことにする。) 実は1巻の「赤い本」も我慢しているのだが、気がついたら2冊とも売ってるし、ちょっとお高いのでなかなか買えないんですよ…
さすがにもうモンテカルロとか数値計算をやってないので、特に2巻のメインとも言える「乱数」は読まなくても良いかと思うのだけど、赤い本の「情報構造」は読むべきだなということと、あと長らく翻訳が出なかった3巻のソートは興味深いなぁと思っているので、ちょっと楽しみ。まぁ_ボケ防止のための頭の体操に非常に効果的だ_と思うし、パラパラめくって面白いので、日曜日に立ち寄った新宿の紀伊國屋書店で_一気に2冊買ってしまえ!!!_と思って、かなり買おうかなという勢いでしたが、12月の某氏の結婚式に行けなくなると一大事なので、我慢していたのに、これから毎日が誘惑の日々です。(笑)
あとKnuth先生のこの本と言えば、アセンブラ言語に相当するMIXなわけだけども、いろいろ処理系はあるのね。

2004年01月11日 日曜日

GNUの20年

ずいぶん前の話になるが、昨年はrmsがGNU Projectへの呼びかけ(翻訳,後の「GNU宣言」の元になる文書だと思う)から20年目の年だったそうな。昨年の9月末の話なので何をいまさらという話であるが、1月5日のNewsforgeにrms自身による「The Free Software Community After 20 Years: With great but incomplete success, what now?」という記事(和訳)が掲載されていたので、読んでみて思い出したかのように日記の記事にすることにした。
ソフトウェアにそれなりに踏み込んでつきあうようになると誰でもそうであると思うが、GNUの成果物の恩恵に預かっていることに気づかされることが多い。僕の場合は今年で11年目になると思う。最初の出会いはテキスト処理をするために使い始めたawkであるが、MS-DOSで使っていたので当然GNU版のawkであるgawk(の日本語版jgawk)だったように思う。当時書くのもめんどくさいテキストファイルのフィルタ処理がこんな簡単な言語でできるもんだと感動して使った記憶がある。(その後、awkの使いこなしでは師匠に絶対勝てねえと思ってperlを使うようになりawkを忘れ、今はテキストの処理の需要があまりないのでなんにもやってないが。)
その後、数値計算でCでプログラムを書く機会が多かった(Fortran嫌いなんで)ので、MS-DOSでMS QuickCを使っていた。Cを始めた頃はこの処理系でよかったが、当時積分計算をすることが結構多くて処理速度を稼ぐために最適化をかけたいことがよくあった。ただMS-Cのような処理系は_学生時代には絶対買えないお値段の処理系_(今も買えませんが)で、とても手を出せる状態にはなかった。またMS-DOSの制約以上の大きなメモリ空間を計算上必要としていたこと(こっちの方がより重大だった)ため、どうしてもMSのツールじゃ駄目だった。そんなときに大学のFTPサーバを覗いていて発見したのが、GNUのCコンパイラGCCのMS-DOS版であるdjgppでした。DOS-Extenderという妙な環境で動く何ともしれないコンパイラだったが、結構長い間愛用していた。
その後のLinuxの登場によりMS-DOSという妙な環境ではなく、何の制約もないUnix互換環境でGCCを使えるようになったので、ソースファイルごとLinuxの環境に移行してしまい、それ以来何かツールを作る環境はLinuxの上でやってきているし、こんな素晴らしいものはないと言うことでLinuxや*BSDの普及活動に時間があったら手間を惜しまず関わっている。まぁ最近はC/C++でプログラムを書くこともなくなったので、すっかり一利用者になってしまったけども。(お仕事上のVBAは除く。あれは選べない環境なので。)
最近の風潮ではGNUのGPLによる配付の縛りがきつすぎて、_GPL嫌い_な人を結構見かけるが、近年のオープンソースムーブメントのよりどころは_Linusによるバザール的開発手法の発明_とESRによる精緻な再定義によるものだとかんがえられる。しかし実際にはそれ以前の_rmsのFree Softwareの運動が基礎として存在_しており、GNU嫌いな人も_アンチテーゼとしての存在としてのGNU_なしには語れない訳だから、すべてに対して影響を及ぼしていると考えて良いと思う。改めて凄いことだと言わざる得ない。
さて、最初のrms自身の記事にもどるが、ちょっと過激なところはあると思うが大いに刺激を感じる記事かと思う。たしかに僕自身も特許やら企業秘密の中に生活している人なので、特許や企業秘密に依存するソフトウェアがどうしてもclosedでものでproprietaryな物にならざる得ないのは理解できるので、「Non-free software carries with it an antisocial system that prohibits cooperation and community.」は、ちょっと言いすぎだろうと思うが、先鋭的な意見を述べて戦い続けなければならない立場を考えると、確かにそう言い切ってしまわねばならないのだと思う。
さらに読んでいくと、

2002年04月25日 木曜日

Linux Japan 休刊?

Slashdot-jpの記事から。正式な発表を見いだしていないが、おそらく休刊であろう。休刊になりそうな理由はいくつも思いつくが、最近雑誌を買おうと思わないうえ、Linux Japanに魅力的な記事や連載がないと言う時点ですでに購入の対象から外れている。創刊された時期を覚えているだけに残念であるが、時代の流れのような気がする。
最近思うのであるが、PC系の雑誌、特に開発者向けな雑誌は資料的価値があるので、記事の電子データをすべて添付して欲しいと思うのは僕だけであろうか。雑誌を物理的に保管するスペースがない上、紙媒体だと検索性がないため、文書としての利用価値がどうしてもないのです。内容は玉石混合で、内容の新旧はあるけれどまだWebの方がマシ。どうにかして欲しいと思うけど、やっぱり無理なのかしらねぇ。

2002年03月12日 火曜日

オーム社 / Ruby Gem Box

Ruby256本の著者らによる本。最初ぱらぱらめくったときはRWikiとdrbが気になって購入してみたわけだが、読んでみると意外にBigFloat(可変長浮動小数点数ライブラリで良いのかな)の解説がなかなか楽しい。昔数値計算をしていた名残であるが、可変長の浮動小数点ライブラリはCで使ってみたりしたが、足し算や引き算と言った演算子を使って行うような計算をすべて関数呼び出しでやるという弊害があった。僕が学生の時にはC++の完成度は今のようではなかったし、JavaについてはAlpha版であったから、クラスライブラリを書いて演算子関数を使って多重定義なんてことはできなかった。Rubyのようなお手軽言語でこのような計算ができるようになったことは非常に有益であろう。むろんパフォーマンスを求めるならば、C++やJavaなどでやるべきであろうが、アイディアをそのまま計算するにはもってこいだ。
他にはGtk/RubyやSDLの解説もあっておもしろそうであるが、いかんせんそこまで話について行けてない。そのうち読みそうであるが…