剛体球で分子動力学シュミレーションやった。 衝突はめり込みで判定して、セルで切って次に衝突する粒子を隣接したセルからのみ探すようにしてる。 2次元10000粒子周期境界で計算。 小さくて見え辛いけど良く見ると結晶化してるのが見える。 こっちは完全に…
レナード・ジョーンズに従う粒子のシミュレーション。重力多体系のコードを流用して作った。 馬鹿正直に全ての粒子の相互作用を計算してるから無茶苦茶遅い。 [12/22追記]運動量の大きさで色分け。 質量の大きさを変化させることができるようにした。
latexでのpdfの作成〜閲覧までをemacsの中で行いたかったので調べてみました。doc-viewを使えばcocoa emacsでpdfを表示させることが出来るようです。 Emacs 23でPDFを表示させる--新機能「DocView」を試す - builder by ZDNet Japan少し設定が必要見たいです…
yatexそのものにも補完機能はあるのですが普段org-mode+cdlatexを使っているでそちらの方に手が慣れいます。 そういうわけで、yatex起動時にcdlatexも起動する設定。 (require 'cdlatex) (add-hook 'yatex-mode-hook 'turn-on-cdlatex) そういえば、cdlatex…
Org-modeからbibtexを使う手順の覚え書き。 BibTeX と Org Export | Amrtaを参考にしました。bibtexファイルをカレンドディレクトリに放り込んで orgファイルの先頭に #+BIBLIOGRAPHY bibtex file nameと書き、文献を表示したい場所(ファイル末とか)に \bibl…
突然ですが理想気体のエントロピーを求めてみましょう。理想気体分配関数は、 自由エネルギーは、 これからエントロピーは、 この表式を見ると温度を下げていくとエントロピーが負になってしまうように見えます。 また、T=0では となってしまいます。一見不…
少し息抜きをかねて揺動散逸定理について感じたことをつらつらと。 揺動散逸定理というのは、アインシュタインが発見した定理で、 平衡状態から離れるよう働く揺動と平衡状態へと向かわせる散逸の間の関係を表したものです。式で表せば、 この、 散逸の大き…
emacsを使っていて、分割した時の画面と画面の間のことを何と言うか知らなかったんですけど、 http://www.bookshelf.jp/soft/meadow_26.html のページを見て名前が分かりました。 fingeと言うそうです。僕には必要無いので、emacsの設定ファイルに、 (fringe…
Ubuntu11.04でEmacsにauto-completeを入れた際の覚え書き。 端末から、 $ sudo apt-get install auto-completeemacsの初期化ファイルには、 (require 'auto-complete-config) (ac-config-default) これで問題無く動くようになりました。
Cocoa Emacs に Aspell が入ってないことに気付く - Clipboardを参考にして、aspellを入れました。僕はすでにHome brewを導入濟みだったので、 $ brew install aspell --lang=en後は、emacsの設定ファイルに、 (setq-default ispell-program-name "aspell") …
python用の科学計算ライプラリscipyを使った最小二乗法用のテンプレを貼って置きます。 SciPy Cookbook — SciPy Cookbook documentation を参考にしました。 from scipy.optimize import * fitfunc = lambda p, x: p[0] * x + p[1] #フィットさせる方程式 er…
c等で計算したデーターをpythonのmatplotlibを使って可視化したかったので、数値データーをテキストファイルから読み取る際の方法を調べました。 後でテンプレとして使える様にここにまとめて置きます。Python: テキストファイルの読み込み - read()、readli…
cocoa emacs でのフォントの設定 - daharuの日記の設定後 terminalからCocoa emacsを起動するとフォント関連のエラーが出てしまったので.emacsでのフォントの設定をGUIのときのみ適用するよう変更しました。 その際調べたことをまとめておきます。自分のため…
手元の本には、mks単位系のものしか乗っていなかったので、少し調べたことをまとめておきます。 テンソル形式でのMaxwell方程式(cgs)hatena日記のtex記法が僕には使い辛かったので、evenote上のpdfへのリンクを貼っておきます。
問題は、Problem 87 - Project Euler。 50 * 10^6以下の数の中で、素数の二乗+三乗+四乗でかけるものの数を求めよというものです。解答している人が前後の問題と比べて二倍程多いだけあって単純な総当たりでも数秒程で答えがでてしまいます。 from number_th…
3次元のレビ・チビタの記号についての公式をまとめておきます。 以下縮約ルールを用いる。(同じ添字が現れたら1〜3までの和を取る.) 同じ添字が1つ現れる場合 同じ添字が2つ現れる場合 すべて同じ添字の場合 追記 d次元の場合にも類似した公式を導くことが…
ピタゴラス3体問題 (Burrau’s problem of three bodies) | YABUKI Taro’s Home Page のを見て興味を持ったのでグラフを書いて見ました。重力多体系の数値計算を行なう場合、力が距離の逆二乗に比例する為粒子間の距離が近いときには誤差がとても大きくなって…
熱力学の教科書を見ると大抵導出が乗っていますがここでは、統計力学を使ってそれを求めて見ます。 理想気体のエントロピー カノニカル分布関数は、 ] これを用いてエントロピーは次の様に求めることができる。 ここで N は定数とする。 エントロピーの変化…
http://serennz.sakura.ne.jp/sb/log/eid120.html を読んだまとめ2。前回作った木構造に作用する関数を書いてみます。 具体的には、 1. 自分の階層とその下の階層そのさらに下の階層と再帰的に作用する関数。 2. 自分の階層とその上の階層そのさらに上の階…
http://serennz.sakura.ne.jp/sb/log/eid120.html このページを参考に。 自分用に調べたことをまとめておきます。 院試が終わって時間が空けば自分で実装してみる予定。 実装にはポインターを用います。 struct node { struct node * parent; struct node * …
粒子をランダムに配置した後、空間を粒子が一つか0こしか含まないような格子に区切るプログラムを書きました。 クイックソートの要領で再帰を使って実装しました。実はこのプログラムは別の数値計算に用いる予定で書いたのですが予想外に時間が掛かりそうな…
mac(snow leopard)にyatex.elを導入したときの覚え書きです。 インストール http://www.yatex.org/から,やてふの最新版をとってきて解凍します。 今回は解凍してできたディレクトリーにyatexという名前を付けて、 ~/.emacs.d/yatex に設置しました。 emacsの…
行列の固有値を求めるためのライブラリーが欲しくて少し調べて見たのですが、 導入の簡単さからEigenを使うことにしました。 この記事はその時の覚え書きです。gccの使用を前提にしています。本家へのリンクは、 http://eigen.tuxfamily.org/index.php?title…
昨日書いた三次元のイジンモデルのアニメーションを眺めていたら奇妙なことに気がついた。 平衡状態になるのを待たずbetaを大きくしていく(温度を下げていく)と、 途中で上向きと下向きのスピンの相に分かれてしまいそのまま定常状態になってしまうのだ。何…
3次元のイジングモデルのシュミレーションを行ないました。 前回同様、OpenGLで可視化しています。 macなら、 $ g++ ising.cpp -o ising -O2 -famework GLUT -framework OpenGLでコンパイル、 $ ./isingで実行できます。 Linuxの場合は、freeglutがインスト…
重力多体系のシュミレーションをOpenGLを使ってアニメーションにしました。 計算には、ルンゲクッタを用いました。 手持ちのmacで動くように書いたので環境によっては書き直す必要があるかもしれません。 macなら二つのファイルを同じディレクトリーに置いて…
前に書いた2次元のモデルと比較したかったので、 一次元イジングモデルのシュミレーションを行なうコードを書いて見ました。温度を徐々に変化させながら全体の磁化を出力させています。 結果を見ると2次元の場合に比べて、低い温度(逆温度betaが高いところ…
最近まで乱数を発生させるためのコマンドとして、rand()しかしらなかったので、 0〜1までの乱数を発生させるための関数を自前で書いていました。ところが、最近知人に聞いたところによるとcにはこのための関数drand48()というものが 用意されているようです…
org-modeでLaTeXのヘッダーを追加するためには、文の先頭に #+LATEX_HEADER: \usepackage{package_name}を付け加えます。
主に自分が参考にする為にc言語とglutを使ったサンプルコードを貼っておきます。 例のごとくコードだけで説明は時間があれば付け足します。 //仮想実験室 #include <stdlib.h> #include <time.h> #include<stdio.h> #include<math.h> #include <GLUT/glut.h> #define GRID_NUMBER 100 typedef void (*Action)(</glut/glut.h></math.h></stdio.h></time.h></stdlib.h>…