YMO

Yellow Magic Oracles

2009年11月21日

GNU/Linux 環境

現状で使いこなせる(と思い込んでいる)ツール・言語・ライブラリetc
  • C++(0x対応コンパイラを待ちわびている信者なので)
  • \end{align*}\LaTeX\begin{align*}関連諸ツール( platex とか dvipdfmx とか、 Word も PowerPoint も、ましてや OpenOffice なんて使う気がしないので必須)
  • gnuplot (usingとかsetを使いこなせるようになると飛躍的に便利になる)
そこそこ使えるが、まだまだ勉強が足りないツール・言語・ライブラリetc
  • AWK (たぶん文法はほとんど知ってるけど毎回忘れる、これさえあれば数値実験のデータ解析は大体用が足りて、 Excel はほとんど不要)
  • Ruby (まだまだ勉強中)
  • PHP (研究には絶対使わないし、大規模システムは絶対 PHP では組みたくないけど、このサイトとかちょっとしたウェブアプリには便利)
  • XHTML (文法はほとんど忘れてる、別に勉強したところで得るものは W3C に準拠しているという満足感だけだろうけど)
  • CSS (同上)
  • boost (C++信者には欠かせないライブラリ)
  • make (これも研究で必要になることはないだろうけど)
  • gdb (効率的に使えるようになるとデバッグが進んでうれしいな)
  • ssh (自分の知らない機能が大量にあるはず)
  • apache (研究で Web サーバ立てることなどまずない)
  • Coreutils (コマンド使いこなせるようになるとちょっとスキルアップした気がする)
  • Emacs (完璧に gEdit っぽいキーバインドになるのなら便利なエディタだけど)
  • vim (こっちはキーバインドどころではないが、使いこなせたら便利そう)
  • zsh (「漢のシェル」だが、機能が多すぎてぜんぜん全体像までたどり着けない)
ほとんど使えないが勉強してみたいツール・言語・ライブラリetc
  • R (統計関数が山ほど入っているのがうれしい、どうでもいいが一語の命名は検索にかからないからやめて)
  • subversion (数値実験のソースをバージョン管理した方がいい気がしてきた)
  • gprof (性能解析も今後必要になるだろうな)
  • JavaScript (その気になればすぐ習得できるだろうけど面倒なので労力を割かない)
  • SWIG ( Ruby と C++ を一緒に使えるのはかなり魅力的)
  • autoconf (まあ、研究で使う機会は皆無だろうね)
  • bison, flex (同上)
  • as (コンピュータを使うものの教養程度には…… アセンブラ使った方が早くなる計算処理とかあるのかなあ)
  • Postfix (まあ、サーバ立てる機会があれば)
  • GSL (数値計算やるものとしては魅力的だが如何せん言語が C だし)
  • GTK++ ( X プログラミングで、計算結果を画像で見れるとうれしい)
  • OpenGL (3次元の数値計算では、やっぱりこういうので絵で見られればいいな)
  • ImageMagickconvertしか使えません)
  • ghostscript ( TeX やってると、関連ソフトにはお世話にはなるけど)
  • XSL (昔真面目に使ったことはあるけど、もはや完全に忘れてしまった)
そこそこユーザはいるものの今更使う気にならないツール・言語
  • FORTRAN (この業界未だにいるよね、自分で使ってる分にはいいけど何も学生に教えなくてもいいのにと思う)
  • C (例えクラスもテンプレートも使わなくても、 C++ を better C として使った方が圧倒的によい)
  • Java (中間言語って、こういうことやってるとあらゆる意味で中途半端)
  • Perl (読みにくさは犯罪的、 zsh 以上 ruby 以下の作業があればもしかしたら使うかもしれないけど)
  • Python (一面的な価値観の押し付けは嫌い、そういう意味で Ruby も同等だけど、あっちの方がだいぶマシ)
  • bash その他シェル( zsh に勝てるところってあったっけ? 軽さ?)

なんか XHTML とか JavaScropt とかが場違いな気がするけど、まあいいや。

ラベル:

卒研進捗状況

相変わらず卒研は遅々として進まない。化学反応は相変わらず基本的なことが分かっていないし、超流動(・超伝導)に関してはもはや忘れ去られてしまった。並行して Goldenfeld を読み進めていくという話が、未だに Introduction すら読み終わっておらず、研究に費やす集中が切れたところで思い出したように今日開いてみると、そもそもどこまで読み終わったかを忘れているくらいなので前の節に何が書いてあるかはとうに記憶の彼方(そもそも、集中が切れた状態で開いたので英語も数式も全然頭に入ってこずに、読むのは結局諦める)。

ただ、しばしば人から聞くように研究が辛いかというと、目下のところ、そのようなことは全くない。今のところは特に期限を意識していないというのが非常に大きく働いていて、「○日までにとにかく結果を出さなければいけない」というのが差し当たってないので(もちろん最終的には卒研発表があるのだけれど)、純粋に趣味のようなものとして、上手くいかない試行錯誤の過程も含めた上で研究を楽しめている(これには、師匠がいつぞやか言っていた「研究は上手くいかないのがデフォルト」という言葉も大きい)。ただ、裏を返せば、差し当たっては修論の提出期限が迫って、研究成果を近いうちに出せなければ自分の人生設計が大きく狂うとかいった状況に追い込まれれば非常に苦しくなるだろうが。

そういう、長期的な期限に追われているわけではない状況において、毎週1回の師匠との面会はペースを保つ上で非常に有難い。さすがに貴重な時間を割いてもらってアポをとっている以上、単なる個人的な趣味のように「今週は何もやってません、すいません」というわけにもいかないので、結果が出ようと出まいと、とにかく試行錯誤をして、うまくいったならいったでめでたいし、詰まったなら詰まった箇所を説明できる程度には手を動かす。将来的にはこの定期面談に甘え切っているようではいけないが、とりあえず今は研究の右も左も分からないので、ちょっとくらいはペースメーカーに頼ってもよいだろう。

とか、そういう内情を書き散らかそうとブログを作ったつもりだったが、研究しているうちに気になったことを書いているうちに次第にアクセスが増えてきた。「熱力学ポテンシャル」だとか「等重率の原理」だとかで検索するとこのブログがかなり上位にヒットしてしまうが、そんなのでいいのかなあ。一応、度を越して恥ずかしいこと(えらく見当違いの記事だったり、身の程を越えて背伸びした記事だったり)は書いてないつもりだけど。まあ、ちょっと検索すると出てくる今の感じだと、例えば研究室の人なんかには読まれてると思った方がいい(というか少なくとも田崎さんはコメント残していったし)。まあ、このブログは研究以上に義務感はないので、ぼちぼちやっていきます。

ラベル:

2009年11月19日

(int)

例えば、1/2が0として(意に反して)認識されるというバグはよく埋め込まれる。今日ちょうどこれで数週間悩んでいたのが発覚して、あまりの呆気なさに愕然とした。指摘されればすぐ気づくバグではあるが、なかなか自分では気づかないのが悲しい。

ところが、これも同じく今日気づいたのだが(これで悩んだのは数十分)、こちらはどう考えても言語設計が悪いだろうという罠。


container<double> x; // 0 <= x[i] < 1
std::cout << std::accumulate(
 x.begin(),
 x.end(),
 0,
 std::plus<double>()
) << std::endl;
// prints 0.

期待した結果が欲しければ、以下のようにせねばならない。


std::accumulate(
 x.begin(),
 x.end(),
 0.0,
 std::plus<double>()
)

そう、std::accumulateは第3引数で型を推論しているので、第4引数にどんな関数オブジェクトを指定しても出力は第3引数の型となる。これは非常に厄介だ。まあ、実装する側になって考えれば、この罠を回避するうまい術は思いつかないのだが。

ラベル:

科学技術関係予算の確実な確保について

例の記事で紹介した以外のところでも署名は動いているらしく、その話がうちの研究室の先輩に届いた所なのだが、科学者から反対意見が相次いでも民主党は予算削減を断行できるのだろうか。

科学技術関係予算の確実な確保について(緊急提言)

先日の事業仕分けに対して、このような文書が総合科学技術政策会議の有識者議員からさえも出ている。東大のような組織がこのような声明を出したら民主党は打撃になると思っていたが、まさか政府の公的会議から来るとは。

しかし、民主党もこうなると、撤回即ち自分の非を認めることになるので、却って泥沼化しそうな気もしなくはない。だが、まあ少なくとも現段階で科学者側からの「脅し」をかけておかないと、今後政権交代が頻繁に起こるような世の中において、それとは無関係に科学技術予算を恒常的に確保するのは難しいだろう。

それにしても、幸か不幸か、今まで、科学技術に伴う利権を得る代わりに科学技術の予算を守ってくれるような「科学技術族」の議員はあまりいないように思う。科学者というのは概して面倒な政治を嫌うものだから、そこのところの発信が抜けてきたツケが回ってきたというところもあるだろうが。

ラベル: ,

2009年11月17日

科学研究費補助金の一部の執行停止に対する反対署名

民主党の政策で、予算の配分を色々変えようといった問題がある。筆者は確かに、子供手当てや後期中等・高等教育に関する負担の軽減には賛成である(高速道路無料化はメリットが感じられず反対だが)。少子高齢化が進むと、福祉政策が成立しないわけで、そこから逆算すると、子供を産むインセンティヴ、産んだところできちんと育てられる保証が国から出れば、ちょっとは子供の数も増えるはず(ついでに、シングルマザーをもっと保護するだとか、特別養子制度を推進するだとか、もっとすればいいと思うけど)。

だがしかし、民主党の科学技術政策には、基礎科学の世界に生きる者としては決して賛同しがたいものがある。

基礎科学の研究は広く人類の文化の問題であり、経済的に余裕のある国は、そこに相応の負担をする義務があると考える。加工貿易云々という論点はいささか狭いと感じるが、大きな趣旨に賛同するので署名する。(田崎晴明氏)
呼びかけ人や、すでに署名をされた方々への応援の意味をこめて、この署名をさせていただきます。呼びかけ文のすべてにわたって賛同するわけではありませんが、このような声を挙げること自体は意味のある行動だと思います。私自身の意見は、以下のweb siteに載せていますので、一読いただければ幸いです。 吉川研一(京大理・物理・教授)
http://www.sci.kyoto-u.ac.jp/modules/tinycontent1/index.php?id=5

自分の分野に近いところだけでも、このような方達が署名に賛同している。自分も、科学の世界に生きるものとしてはまだまだひよっこの中のひよっこだが、何らかの意味を持てばと考え署名してきた。

自分自身の意見としては、田崎さんの意見に近いものがある。というか、基本的に理学にいるものはそういう実感ではなかろうか。自分の研究成果はまず世界中の同僚に共有されるわけで、基礎科学が振興したところで基本的にはある種排他的な「科学技術立国」という枠組みには結びつかない。だからこそ、予算が付きにくいというのもあるのだが、そこに予算をつけるのが先進国の役割であると考える。あと、そういう高尚な動機に加え、若手研究者に対する予算が減るというのはそのまま自分の経済状況に跳ね返るため、黙してはいられないというのもあるが。

ともあれ、このサイトのアクセス数も幾分増えてきたことであるので、ここで署名の広報をすることは一定の意味があると考え、掲載する。

追記。直筆署名に移行するらしい。しかし、当分ネット署名は残っていそうなので、告知は残しておきます。自分自身は直筆署名をする機会があればしたいとは思うが。

追記。署名が一旦打ちきられたようです。トップのリンクも消しておきます。何か続報があればまた。

ラベル:

事業仕分け

事業仕分けが着々と進んでいるらしい。まあ、従来の常識から考えるならば、これははっきり言って小泉劇場のやり口その物で、「抵抗勢力」と改革側がチャンチャンバラバラのやりとりをしている様を敢えて国民の目前でやっているという、パフォーマンス。

小泉は郵政民営化は成し遂げたが、道路公団改革は骨抜きとなってしまった。まあ、そこまでいくこともないだろうが、こういう改革で大概「総論賛成、各論反対」とならないものは想像できないわけで、今回の事業仕分けも、「あれも削減、これも削減」と言って国民の注目を集めつつ、結局のところ削減することはするものの、その幅は適当なところで手を打って、落ち着くところに落ち着くんではなかろうか。そういう希望的観測を持っているのだが。

科学技術予算でも、色々削減となっている。まあ、スパコン世界1位は要らないと思うけど、個人的には1位は要らないが、浮いた予算で世界10位以内を複数欲しいと思っているわけで、おそらく科学者側から反対意見を唱えている人の多くはそれに賛同するところだと思う。スパコンの予算を削ってしまえと言っている科学者は、(削って自分の分野によこせと言っているわけでもない限り)少ないのではなかろうか。

この件に関連して、署名を集めているようだが、それに関しては別の記事で。

ラベル: ,

2009年11月16日

Stratonovich Rule

未だに Langevin 方程式 F:=\ddot{x}&=-V'(x)-\gm\dot{x}+\xi(t)\\  \lag\xi(t)\rag&=0\\  \lag\xi(t)\xi(t')\rag&=2\gm T\dl(t-t')を考えている。質量は1で、ポテンシャルは簡単のため調和型。

これについて、運動エネルギー E:=\frac{1}{2}\dot{x}^2の変化の平均を考えると、 \left\lag\frac{dE}{dt}\right\rag = \lag F\dot{x}\rag = -\lag V'(x)\dot{x}\rag -\gm\lag\dot{x}^2\rag + \lag\xi(t)\dot{x}\ragとなる。ここで、因果律より\dot{x}(t_0)は t<t0 の物理量にしか依存しないはずだから ξ とは独立であり、第三項は0である。従って、 γ→0 (γT=const) なら平均的にエネルギーは保存するはず。

と、師匠と面会の時に言ったら笑われる。まあ、少し考えればその通りで、質量0の極限だと速度が「 Brown 運動」するはずだから、どんどん速度の二乗平均は増加していくはずだ。しかし、先の議論が間違っているようにも思えない。

試しに先の極限の差分化 v_{i+1}-v_i&=V'(x_i)\Dl t + B_{\Dl t}=:F_{i\to i+1}\\  x_{i+1}-x_i&=v_{i+1}\Dl t\\  \lag B_{\Dl t}\rag&=0\\  \lag{B_{\Dl t}}^2\rag&=2B\Dl tを行って、先の極限で運動エネルギー E_i=\frac{1}{2}{v_i}^2を見てみると、やっぱり増えているが、\lag B_{\Dl t}v\ragは誤差の範囲で0だ。

お手上げ状態で師匠と面会して、「差分化した E の増分を真面目に計算しろ、まずはポテンシャル0の場合。」と言われてすぐに気づく。ランダム力の2乗の項が E の増分に入っている。ポテンシャルがある場合には、 E_{i+1}-E_i&=\frac{{v_{i+1}}^2-{v_i}^2}{2}\\  &=F_{i\to i+1}\frac{v_{i+1}+v_i}{2}となる。そうか、これが Stratonovich Rule ってやつか!

最初の議論では軽々しく\xi(t)\dot{x}なんて書いたが、そもそもこれは揺らぐ量同士の積だから定義されていない。こういう積を議論したい時は適切な定義を選ばなければいけないが、 Itō Rule を定義として用いても物理的描像とは合致せず、物理的に意味のある結果を出したければ Stratonovich Rule を採用しなければならない。 vi+1 は当然 ξ と相関がある。しかもランダム力の平方の項が出るから常に正の相関だ。こうやって考えればエネルギーが増えるのも自然だ。

こういう罠に引っかかって、改めて確率微分方程式は怖いなあと思う。まあ、こうやって自分で色々失敗して身につけた知識こそが身になるものなのだろう。

本題とは関係ないが、 xmodmap でデッドキーの設定はどうやるのかなあ。 Itō の “ō” の入力が面倒くさい。 フランス語・ドイツ語に登場する文字は AltGr + アルファベットで出るようにしてるんだけど(だから Poincaré とか Schrödinger はすぐに入力できる)、 ō なんて滅多に入力する機会ないしなあ。

ラベル:

加重線型最小二乗法

誤差付き観測データ \{(x_i,y_i\pm s_i)\}_{i=1,\dotsc,n}に直線 y=ax+bを当てはめる場合を考える。ここで、 x についての誤差は考えない(自分が扱っているのが数値実験だから、基本的に x はパラメタであり誤差はないので)。また、直線以外の当てはめは基本的に精度が悪くなるので、適当な変形で直線に直すことをまず考える。

ここで a, b は残差の平方和 e2e^2&:=\sum_{i=1}^n{e_i}^2\\  e_i&:=\frac{ax_i+b-y_i}{s_i}を最小にするように定めればよい。これは a, b についての連立一次方程式 \frac{\pd}{\pd a}e^2&=0\\  \frac{\pd}{\pd b}e^2&=0を解けばよいだけで、簡単のため [z]:=\sum_{i=1}^n\frac{z_i}{{s_i}^2}の略記を用いれば a&=\frac{[xy][1]-[x][y]}{[x^2][1]-[x]^2}\\  b&=\frac{[x^2][y]-[xy][x]}{[x^2][1]-[x]^2}となる。

さらに、 y_i\sim N(ax_i+b,{s_i}^2)と仮定すると( N は正規分布、二つの引数は平均と分散) e^2\sim \chi^2(n-2)であることがいえるので、これを用いてフィッティングの信頼性を判定できる(が、そもそも誤差の分布が Cauchy 分布に従うとかいうとんでもない状況であればこんなことにはならない)。

これに加えて、各測定の誤差を独立でかつ相対誤差は十分小さいと仮定すると、誤差の伝播則 \dl f(x_1,\dotsc,x_n)^2=\sum_{i=1}^n {\dl x_i}^2\left(\frac{\pd f}{\pd x_i}\right)^2を用いることができ、真面目に計算すると \dl a^2&=\frac{[1]}{[x^2][1]-[x^2]}\\  \dl b^2&=\frac{[x^2]}{[x^2][1]-[x^2]}が得られる。

加重最小二乗法についてあまり触れているサイトもないし、自分の計算結果をメモ代わりに。

ラベル:

2009年11月15日

大地の息吹 水の唱声 宇宙とのハーモニー

一部の方から好評を博しているトンデモ Adsense 集だけど、ついにここまできたかという広告。クリックして爆笑してしまった。皆さんもぜひクリックしてみてください。

恩寵 宇宙エネルギーを水に受けとり 高波動水をつくるアンテナ

まさかこんなのを科学的と信じる人はいないだろうから、トンデモに含めるのは違うかもしれないけど、面白かったので紹介。

ラベル:

2009年11月9日

Pileon

先週の日曜、UbuntuをJauntyからKarmicにアップデートした(検索に引っかかるようにUbuntu 9.10とも書いておこう)。GCCは4.4.0が標準なようなので、C++-0xのautoを使いたいがために野良ビルドしたGCC4.4.0を削除する(でも4.5が出たらLambda使いたいがためにまた野良ビルドすることになると思う)。zshも4.3.10にアップデートされているな(RPROMPTに`zsh --version`を表示しているのですぐに気づく)。Open Officeもアップデートされているようだが、ほとんど使わないので気にしない。GCCの他に野良ビルドしているアプリケーションといえばpteTeXなのだが、LiveTeXの方はUTF-8のソースコードに対応しているのだろうか。対応しているようならそちらもCanonicalの方のパッケージに戻してもよいんだが(誰か情報ください)。先週の日曜は音が出ない問題等々に忙殺されてしまった。

フリーセルをしようと思ったらない。一瞬焦ったが、AisleRiotソリティアを初めて開いてみたら、そちらに収録されていた。山ほどゲームがあるので色々やってみた。個人的には完全情報ゲームの方が好き(なのでWindowsを使っていた時代にもソリティアはほとんどやらなかった)だが、その中でも特に面白いと思ったのがPileon。日本語ではピレノンと書かれているが、どう考えても音写ミスだろうな。意味から考えても"Pile on"ととるべき。

最初は全然クリアできなかったが、だんだんコツを掴んできた。ほとんどの場合、最初の数手、つまり空きスペースにどれを置くかでそのゲームをクリアできるか否かが決まる。始めてすぐは、**Xの形の山と**XXの形の山ができてしまうせいで手詰まりになるケースが多かったので、それを避けることくらいは学んだ。

それにしても、RhythmBoxとかPidginとか、画面右上に表示されるポップアップ(って呼び名でいいの?)のフォントって変えられないの? なんかKarmicにアップデートしたらフォントがセリフ体に変わってしまった。これに関しても情報持ってる方がいたらお願いします。

Windowsは良くできてますよ。

自分が(多少Windowsより不便なところがあっても)Linuxを使うのは、研究やる上で空気のようにUNIX環境を使いたい(使う必要がある)から。その辺、Mac OS Xでもまあいいんだけど、WindowsでCygwinはあまりにストレスがたまる。まあ、でもDTMやるときはWindows使ってるけどね。一応WindowsとUbuntuの両方で使う可能性のもっとも高いFirefoxはプロファイル共有してる。

ラベル: