プロフィール

suurizemi

Author:suurizemi
はじめまして。私の名前は松崎遥です。
2010年現在、東京大学大学院総合文化研究科の2年生です。
最近いろいろ総合しすぎてよく解っていません。
e-mailアドレスは、blckcloistergmilどっと混むです。出会い系サイトの攻撃によりコメント機能は使えませんので、こちらにご連絡下さい。

私の好きな言葉だけ・・・
「証明の海の中にこそ数学の生命が宿り、定理や予想は大海に浮かぶただの泡である(よみ人知らず)」
「曖昧な知識は何の役にもたちません。自戒を込めて(神保道夫)」
「連続関数以外では、微分積分法はむずかしい!(高木貞治)」
「10代で共産主義にかぶれない人間は情熱が足りない。20を過ぎて共産主義にかぶれる人間は知能が足りない。(よみ人知らず)」
「だから、あの人自身がアトラクターなんだよね(金子邦彦教授評。)」
「われわれは、ほとんど知識をもっていないことほど固く信じている。(モンテーニュ)」
「現代文明の根源であり象徴である近代科学は,知的に非凡とは言えない人間を温かく迎えいれ,その人間の仕事が成功することを可能にしている.
 その原因は,新しい科学の,また,科学に支配され代表される文明の,最大の長所であり,同時に最大の危険であるもの,つまり機械化である.物理学や生物学においてやらなくてはならないことの大部分は,誰にでも,あるいはほとんどの人にできる機械的な頭脳労働である.科学の無数の研究目的のためには,これを小さな分野に分けて,その一つに閉じこもり,他の分野のことは知らないでいてよかろう.方法の確実さと正確さのお陰で,このような知恵の一時的,実際的な解体が許される.これらの方法の一つを,一つの機械のように使って仕事をすればよいのであって,実り多い結果を得るためには.その方法の意味や原理についての厳密な観念をもつ必要など少しもない.このように,大部分の科学者は,蜜蜂が巣に閉じこもるように,焼き串をまわす犬のように,自分の実験室の小部屋に閉じこもって,科学全体の発達を推進しているのである.・・・(中略)・・・大部分の科学者は,自分の生とまともにぶつかるのがこわくて,科学に専念してきたのである.かれらは明晰な頭脳ではない.だから,周知のように,具体的な状況にたいして愚かなのである.(オルテガ)」
「幾何学(=数学)について腹蔵なく申せば、私は、これを頭脳の最高の訓練とは思いますが、同時にそれが本当に無益なものだということをよく存じていますので、、、(パスカル)」
「犬っころなら三日も四日も寝ていられようが・・・寝て暮らすにゃあ、人間てのは血が熱過ぎる・・・(村田京介)」
「小泉純一郎は朝食をたくさん食べる。ヒトラーも朝食をたくさん食べた。だから小泉はヒトラーと同じだ(朝日新聞)」
「畜生、今日もまた Perl でスクリプトを書いてしまった。ああもう、 Python がデフォルトでインストールされないシステムはゴミだよ。いや、それではゴミに対して失礼だ (リサイクル可能なものが多いからな) 。よし、こうしよう。 Python がデフォルトでインストールされないシステムは核廃棄物だ。いや、核廃棄物の中にも再利用できるものはあるな。なんて事だ、俺は本当に無価値なものを発見してしまった・・・(プログラマー)」
「ヨーロッパかアメリカの気候のよいところで、
のんびりぜいたくに遊んで一生を暮らすこともできるだろうに・・・それがお前たち下等なブルジョワの最高の幸福だ。」
「もし二人がいつも同じ意見なら、一人はいなくてもよい。(チャーチル)」
「悉く書を信ずれば、即ち書無きに如かず。(孟子)」
「一般的に、時間が経てば経つほど、バグを直すのにかかるコスト(時間とお金)は増える。
例えば、コンパイル時にタイプか文法エラーが出たら、それを直すのはごく当たり前のことだ。
バグを抱えていて、プログラムを動かそうとした最初のときに見つけたとする。君はわけなく直せるだろう。なぜなら、君の頭の中でそのコードはまだ新鮮だからだ。
2、3日前に書いたコードの中にバグを見つけたとする。それを追い詰めるのには少し時間を要するだろう。しかし、書いたコードを読み直せばすべてを思い出し、手ごろな時間で直せるだろう。
でも、2,3ヶ月前に書いたコードの中のバグについては、君はそのコードについて多くを忘れているだろう。そして、直すのはこれまでよりずっと大変だ。このケースでは、君は誰か他の人のコードを直していて、書いた本人は休暇でアルバ島(訳註:ベネズエラ北西カリブの島・リゾート地)に行っているかもしれない。この場合、バグを直すことは科学"science"のようなものだ。ゆっくり、順序立てて慎重にやらなければならないし、直す方法を見つけるのにどのくらいかかるのか、確かなところがわからない。
そして、すでに出荷されたコードのバグを見つけたら、それを直すには途方も無いコストを招くだろう。(Joel on Software)」
「男と女には春夏秋冬がある。
春にしっかり育てて、
夏に燃え上がり、
秋に”情”という実がなり
冬はそれを食べて生きていく。(柳沢きみお)」

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

自主セミナー やって候
もはや自主セミナーの補助ページではなくなって久しいモノ。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 
aozora.gr.jp 東大生ブログランキング
スターリンの公式の誤差
今回は理系のひとには役に立つ情報かもしれない。スターリンの公式は、γ関数の計算で精度を高めることが出来る(漸近展開?)のだが、それをしない場合、どのくらいの誤差が出てしまうのだろうか?

プログラミング言語はgccで、long long intを使って計算してみた。

1: n! = 1 n!(sf)= 0.922137
1: accuracy percentage = 7.786299 theoretical accuracy = 8.690404952
2: n! = 2 n!(sf)= 1.919004
2: accuracy percentage = 4.049782 theoretical accuracy = 4.254690519
3: n! = 6 n!(sf)= 5.836210
3: accuracy percentage = 2.729840 theoretical accuracy = 2.816717744
4: n! = 24 n!(sf)= 23.506175
4: accuracy percentage = 2.057604 theoretical accuracy = 2.105186215
5: n! = 120 n!(sf)= 118.019168
5: accuracy percentage = 1.650693 theoretical accuracy = 1.680633039
6: n! = 720 n!(sf)= 710.078185
6: accuracy percentage = 1.378030 theoretical accuracy = 1.398578759
7: n! = 5040 n!(sf)= 4980.395832
7: accuracy percentage = 1.182622 theoretical accuracy = 1.197590562
8: n! = 40320 n!(sf)= 39902.395453
8: accuracy percentage = 1.035726 theoretical accuracy = 1.047110901
9: n! = 362880 n!(sf)= 359536.872842
9: accuracy percentage = 0.921276 theoretical accuracy = 0.930225881
10: n! = 3628800 n!(sf)= 3598695.618741
10: accuracy percentage = 0.829596 theoretical accuracy = 0.836815221
11: n! = 39916800 n!(sf)= 39615625.050578
11: accuracy percentage = 0.754507 theoretical accuracy = 0.760452623
12: n! = 479001600 n!(sf)= 475687486.472776
12: accuracy percentage = 0.691879 theoretical accuracy = 0.696861301
13: n! = 6227020800 n!(sf)= 6187239475.192720
13: accuracy percentage = 0.638850 theoretical accuracy = 0.643084608
14: n! = 87178291200 n!(sf)= 86661001740.598831
14: accuracy percentage = 0.593370 theoretical accuracy = 0.597013157
15: n! = 1307674368000 n!(sf)= 1300430722199.468018
15: accuracy percentage = 0.553933 theoretical accuracy = 0.557101627
16: n! = 20922789888000 n!(sf)= 20814114415223.136719
16: accuracy percentage = 0.519412 theoretical accuracy = 0.522192028
17: n! = 355687428096000 n!(sf)= 353948328666101.125000
17: accuracy percentage = 0.488940 theoretical accuracy = 0.491399505
18: n! = 6402373705728000 n!(sf)= 6372804626194313.000000
18: accuracy percentage = 0.461846 theoretical accuracy = 0.464036292
19: n! = 121645100408832000 n!(sf)= 121112786592294192.000000
19: accuracy percentage = 0.437596 theoretical accuracy = 0.439559733
20: n! = 2432902008176640000 n!(sf)= 2422786846761135104.000000
20: accuracy percentage = 0.415765 theoretical accuracy = 0.417535929

N=20で、なんと0.4パーセントもの誤差を持っている。この誤差はコンピューターのせいではなく、右に理論値(theoretical accuracy)を載せておいたので、原理的なものであることがわかると思う。

誤差は、理論的には、だいたいexp(-1/12n)で与えられてる。要は指数関数的に減少しているのだが、上を見るとわかるとおり、収束が非常に遅い。例えば6桁の精度、つまり誤差が0.0001パーセントで収まるようにするにはどうすればいいか?(これは満足できない精度である)ということを考えると、計算結果は
n=80000 0.000104167
n=90000 0.000092593
となり、実にn=90000ものnが必要なのだ。つまり、コンピューターで統計力学をやろうと思ったらこの方法では粒子は10万個も必要だということになる。
熱力学的現象が観察されているミクロンスケールでも粒子数は100万個だから、これでは少し心もとない気がするのは僕だけだろうか?
ちなみに、100万個の時の誤差は
n=1000000 0.000008333
(パーセント)でした。やはり大きすぎると思います。
スポンサーサイト

 
aozora.gr.jp 東大生ブログランキング
この記事に対するコメント
もう少し精度をみるには
はじめまして、nadjaといいます。
その計算を両方に対数を取って計算してみるといいかもしれません。
あとは丸め誤差を回避するように計算スケジュールを実行すれば、N=10^6程度までは漸近評価と理論値の差を議論することができると思います。大きな数値を議論するための工夫をするともっと正確なことが言えるのではないでしょうか。

【2007/01/28 05:15】 URL | nadja #- [ 編集]

訪問・アドバイス有難う御座います
トラックバックいただいてからちょくちょく読ませていただいております。ありがとうございます。

いわれてみれば、対数をとってスターリン級数を見てみれば、ヘルムホルツの自由エネルギーの誤差は、粒子数Nに対して1/12Nですね。ありがとうございます。

大きな数のプログラミングをするのはこれが初めてで、完全トーシローな自分はいろいろ苦労してます(汗)丸め誤差とかも、なにが要因で増えていくのやらまだよくわかってません。山本哲郎先生の本の1章にいろいろ書いてはあるのですが・・・今のところ理論的な誤差1/12Nに対して丸め誤差が小さいので無視していいかぁ、なんて思っちゃってます。
【2007/01/28 22:34】 URL | 俺 #aF03qbSI [ 編集]


この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://suurizemi.blog32.fc2.com/tb.php/153-1d36786a
この記事にトラックバックする(FC2ブログユーザー)

-

管理人の承認後に表示されます 【2010/02/19 04:14】
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。