2011-07-01から1ヶ月間の記事一覧

行列計算様ライブラリ Eigen

c++

行列の固有値を求めるためのライブラリーが欲しくて少し調べて見たのですが、 導入の簡単さからEigenを使うことにしました。 この記事はその時の覚え書きです。gccの使用を前提にしています。本家へのリンクは、 http://eigen.tuxfamily.org/index.php?title…

イジングモデルのアニメーションを眺めていたら、、、

昨日書いた三次元のイジンモデルのアニメーションを眺めていたら奇妙なことに気がついた。 平衡状態になるのを待たずbetaを大きくしていく(温度を下げていく)と、 途中で上向きと下向きのスピンの相に分かれてしまいそのまま定常状態になってしまうのだ。何…

3次元のイジングモデル

3次元のイジングモデルのシュミレーションを行ないました。 前回同様、OpenGLで可視化しています。 macなら、 $ g++ ising.cpp -o ising -O2 -famework GLUT -framework OpenGLでコンパイル、 $ ./isingで実行できます。 Linuxの場合は、freeglutがインスト…

重力多体系の計算

重力多体系のシュミレーションをOpenGLを使ってアニメーションにしました。 計算には、ルンゲクッタを用いました。 手持ちのmacで動くように書いたので環境によっては書き直す必要があるかもしれません。 macなら二つのファイルを同じディレクトリーに置いて…

一次元イジングモデル

前に書いた2次元のモデルと比較したかったので、 一次元イジングモデルのシュミレーションを行なうコードを書いて見ました。温度を徐々に変化させながら全体の磁化を出力させています。 結果を見ると2次元の場合に比べて、低い温度(逆温度betaが高いところ…

0〜1までの乱数を生成する

c++

最近まで乱数を発生させるためのコマンドとして、rand()しかしらなかったので、 0〜1までの乱数を発生させるための関数を自前で書いていました。ところが、最近知人に聞いたところによるとcにはこのための関数drand48()というものが 用意されているようです…

org-modeでLaTeXのヘッダーを追加する

org-modeでLaTeXのヘッダーを追加するためには、文の先頭に #+LATEX_HEADER: \usepackage{package_name}を付け加えます。

OpenGLのサンプル

主に自分が参考にする為に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>…

emacsでの拡張子とモード(cudaコンパイラーを使うときとかのTip)

Emacsはファイルの内容をその拡張子から推測し適切なモードで開いてくれます。例えば、ファイル名hoge.cpp(拡張子cpp)であればc++-modeで開き、hoge.py(拡張子py)であれば,python-modeでファイルを開きます。具体的にどの拡張子とどのモードが対応しているか…

Ising Modelのプログラム

http://qube.phys.kindai.ac.jp/mc.pdfを参考にしてメトロポリス法でイジングモデルのシミュレーションを行ないました。 機会があれば解説記事を書きたいとお思います。とりあえずはコードだけ。 #include <iostream> #include <vector> #include <cmath> #include <ctime> using namespace s</ctime></cmath></vector></iostream>…

ユニタリー行列の行列式が±1で無いこと

最近まで、ユニタリー行列の行列式は必ず±1であると思いこんでいました。 たぶん直行行列の場合と混同していたせいです。 実際には、 と絶対値が1の複素数になります。 証明は次の様にします。 ユリタリー行列Uの性質から、 この両辺の行列式を計算すると、 …