トップページ

「トップページ」の編集履歴(バックアップ)一覧はこちら

トップページ - (2009/05/07 (木) 02:48:55) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*wikiへようこそ 強磁性体班です。情報交換用にwikiを借りたので自由に編集して下さって結構です。管理しているのは物工4年栗田です。 基本的に誰でも編集できる設定なので便利ですがセキュリティ的にはもろいです。設定を変えればパスワード制にもできるので、そこらへんは様子を見て判断します。右上にこの「wikiに参加」というものがありますが、登録をしなくてもページの編集は自由にできるのでご心配なく。ログインも特に必要ないです。 &color(red){プログラムをそのまま載せるページを作るときは、@wikiモードではなくそのままテキストモードを選んだほうがいいです。@wikiモードだとwikiとプログラムの文が反応して変なことが起こるケースがあります。新規ページ作成時にこの選択ができます。} wikiの使い方は左にある@wikiご利用ガイドを見てください。 磁性体班以外の人の需要があるか知りませんが、この場を情報交換に使ってくれたら他の班の近況もわかるので僕としては嬉しいです。うちの班にはプログラミングに精通した人がいないので、他の班が作っているプログラムを見たいなあという思いもあります。もしこの場を情報交換の場に使っていただけるなら、新しいページを作ってここのすぐ下に○○班というリンクをはってください。利用者がいたらいつかトップページを整理しておきます。情報交換に使わないまでも、磁性体班のものに関する感想や意見があれば是非書き込んで下さい。 [[hex班>hex班]] *近況報告 5/4島崎 遅くなってしまってすみません。添付用1のイジングモデルのg_Temparture(int 1~4)と添付用3の準イジングモデルのalpha(float 1.0~4.0)をGLUIを使って変えられるようにしました。 GLUIのインクルードファイルについてはREADME.txtを見てください。 alphaの刻み幅が調整できないので、直接入力した方がいいと思います。 &ref(添付用4.rar) 4/8伊藤 ありがとうございます。僕のでもN=128では動きませんでした。64でも何となく磁区ができる様子がわかると思います。 Nが大きいとさらに論文に近づけると思うのですが…。 オイラー法ですがScilabでのものをアップしておきます。サイズはN=256です。 alpha=1.5で迷路状、alpha=3.5で島状になっていました。論文とは少し違うかもしれません。 &ref(test9.sce) あと、今後の計画を書きます。 プログラムについては、インターフェイスを充実させようと思います。 実験については4月中に装置や試料について、見ておきます。 試料については用意してくれるものもあるのですが、作らせてもらえるとのことなので(1日程度でできる)、やってみましょう。 いろいろな磁石を貸してくれるそうなので、それを使った小物展示も用意したいと思います。 今までは、割り当てなどはしっかり決めていなかったのですが、今後はみなさんに仕事を割り振れると思います。 4/8栗田 一応目標のものが形になりました。 &ref(添付用3.zip) 大きな問題点は僕のパソコンだとNを128以上にすると動かなくなることです(エラーが出て終了するorz)。もう一つ細かいことですが、何故かコンパイルのときに警告文が出てきます。opengl関連です。理由わかったら教えてください。←自己解決しました。onestep()の引数をint型に設定し、onestepが呼び出されるところで0を引数にすれば治ります。この引数0は関数ないでは使われませんが。 4/3伊藤 昨日のやつをアップします。 模様は変ですがだいたいの挙動がわかると思います。 &ref(test5.sce) 4/2伊藤 精度を考えるとかなり問題なのですが、逆フーリエ変換で出てくるφを実部だけ 残すということをすると発散はしないようです。(虚部を強制的に0にする) 模様はできるのですが荒っぽいことをしているので、論文の形とは違うようです。 また後でアップロードするので参考にしてください。 また、今田先生に聞いたところ、微分方程式は線形項については厳密に解が出るので、 そこからのずれとして非線形項をルンゲクッタの近似等で加えるべきであるとのことでした。 3/29伊藤 「いい」アルゴリズムを考える必要があるようです。 予告していた通り、今田先生のところに4/1(アポは3時)に 質問をしに行こうと思います。 そこでうまい解決策が見つかるといいと思います。 3/27栗田 まあ差分方程式のアルゴリズムが悪いんだろうね。数値解析の授業でも、発散させない条件みたいなのあったし。 3/26伊藤 2πも入れないと変だね。 で、double型にして2πつけると、やっぱり発散するんだよね。 ところで、Scilabで同じようなのを作ってみました (FFT()という2次元高速フーリエ変換の組み込み関数が入っているので、プログラム自体はシンプルに見えます)。 どうもこちらでも発散が起きるようです。 アップしておきます。 &ref(test2.sce) 3/25栗田 プログラム読んでくれてありがとう。確かにk1とk2は問題ありそうですね。ただ、多分だけど2πかけたほうがいい気がします。exp(kN)=1を考えると、k=整数×2π/Nだと思います。それとint型の割り算はdouble型にならずに切り捨てられるから、k1=i/(N*N)、k2=(i%N)/Nをやると両方とも0になると思います。それもふまえて int i, k1, k2; のところを int i, k_1, k_2; double k1, k2; にして、 k_1 = i/N; k_2 = i%N; k1 = (2*M_PI*k_1)/N; k2 = (2*M_PI*k_2)/N;としたのだが、あまり効果がなかったorz 3/25伊藤 栗田くんのプログラム(fft7.c)で発散していた原因はおそらく void function のところです。 波数のところを k1=i/(N*N) k2=(i%N)/N とすれば大丈夫だと思います 3/22栗田  お久しぶりです。フーリエ変換についてですが、2次元のフーリエ変換というのはわりと研究されているわけで、自作のプログラムを作るよりライブラリに頼るべきだと思います。高速フーリエ変換(FFT)なんて素人には組みにくいですし。かといって正直なフーリエ変換はコンピューターに負担をかけます。FFTは2の累乗じゃないとできないわけで、それであの論文は1辺512サイトでやってるんだと思います。僕は[[こちらのページ>http://www5.airnet.ne.jp/tomy/cpro/science.htm]]からFFTをぱくってきました。それを用いて作った微分方程式のシミュレーションの失敗作を挙げておきます。 &ref(添付用2.zip)  一応上のページにいかなくてもこのzipの中身だけで動くはずです。このzipの中には上のページからぱくったものがいろいろ入っているので、説明はそちらを参照してください。自作の関数などについては一応コメントをいれました。  何が失敗かって、fft7を実行してみればわかると思いますが、35ステップくらいで発散して変な感じになります。test2も同様です。とても使い物になりません。僕が作った差分方程式が悪いのですが、どこが悪いかちょっとわかりません。  さて、前回の話し合いから少し日が空いたわけですが、もし今の段階であまりみんなの開発が進んでいないようなら、僕の失敗作を見て改善してほしいです。もうすぐ自分のものができるという状況なら、それを完成させて僕の失敗作はお蔵入りにしましょう。 3/18栗田 m(r)の時間発展が上のpdfファイルに出てくる偏微分方程式に従うことに関する解説は今田先生の教科書の81ページあたりにあります。 追記:今田先生の教科書の記述とはあまり関係のない考察をしてみました。雑な議論ですが直感的理解くらいにはなると思います。 &ref(時間発展.doc) [[上のドキュメントの議論を少し補足しました>補足]](3/19栗田) 3/18伊藤 以前配った英語の論文についての解説です。 だいたい2節目のところの要約です。 &ref(準イジングモデル.pdf) 何か変なところ、わからないところあれば言ってください。 あと準イジングモデルという題名ですが勝手につけたものです。 英語ではIsing-like modelとなっています。 3/17伊藤 まずは、栗田くんありがとう。 一応、今田先生のところに行こうと思うんですが、まだアポが取れていない状況です。 あと、メトロポリス法についての解説をアップしておきます。 &ref(資料3.pdf) 3/17栗田 とりあえず磁場の無い等温イジングモデルはできたわけで、磁場や温度変化を考えるのも、これらのパラメータとメトロポリスステップ数をグローバル変数にして、パラメータをステップ数の関数にすればある程度のパラメータの時間変化が考慮できると思います。できればアルゴリズムの根本的な改善も視野に入れつつ先生に質問に行きたいなあ。 3/17栗田 [[動的イジングモデルのシミュレーションプログラム>http://www36.atwiki.jp/apmay?cmd=upload&act=open&pageid=1&file=%E6%B7%BB%E4%BB%98%E7%94%A8.zip]]を作りました。今田先生がプロジェクター使ってやってたことが再現されると思います。ソースコードやexeファイルをつめておきました。使ったアルゴリズムはメトロポリス法と呼ばれるものです。 ※使い方(ウィンドウズの人向け) glut-3.7.6-binの中にglut32.dllがあるのでこれをC:\WINDOWS\system32にもって行きます。その後isingのなかにあるexeファイルをクリックして下さい。50_の後ろの数字は温度です。右クリックで単位時間進みます。左クリックで単位時間×100進みます。左クリック連打は非推奨です。visualc++を持ってる人は、pdfファイルにあるように中身ファイルを配置するとコンパイルできるようになると思います。 &ref(ising.gif)こんな感じになります 3/15伊藤祐斗 いくつか資料をアップロードします。 二次元イジングモデルについての解説です。 &ref(資料.pdf) 二次元イジングモデルのシミュレーション(メトロポリス法についてはあとで)についての解説です。 &ref(資料2.pdf) 3/10伊藤祐斗 下記のプログラムに、周期的境界条件についてのコメントをいれました。C言語で実装したいと思っています。 各ピクセルに色を割り当てて表示するプログラムというのがあって、今回作りたいプログラムでも使えそうなので、[[ここ>雲]]にプログラムをアップしておきます。実際は磁場の効果を取り入れるためにエネルギーの変化分DeltaEを修正したり、アニメーションのプログラムにしなくてはいけません。 ※3/15追加事項 プログラムは[[こちら>scilabイジング]]です。 3/4(水)伊藤祐斗 遅くなって申し訳ありません。Scilabで描いたイジングモデル(磁場なし)のプログラムをアップロードします。 表示部分のみです   (全磁化や全エネルギーやスピン反転の受け入れ回数等の計算部分は入れずに、純粋に絵だけを表示するという意味)←3/15挿入 メインプログラムはIsing.sceサブログラムはDelta.sce という名まえで保存してください。Consoleでexec 'Ising.sce'と入力すれば動くはずです。このままで使えるはずです。 **公式の操作方法 -[[@wikiの基本操作>http://atwiki.jp/guide/category2.html]] -[[用途別のオススメ機能紹介>http://atwiki.jp/guide/category22.html]] -[[@wikiの設定/管理>http://atwiki.jp/guide/category6.html]] -[[@wiki ご利用ガイド>http://atwiki.jp/guide/]] -[[よくある質問>http://atwiki.jp/guide/category1.html]] -[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ>http://sns.atfb.jp/view_community2.php?no=112]] -[[@wiki更新情報>http://www1.atwiki.jp/guide/pages/264.html]] -[[@wikiへのお問合せフォーム>http://atwiki.jp/helpdesk]] 等をご活用ください
*wikiへようこそ 強磁性体班です。情報交換用にwikiを借りたので自由に編集して下さって結構です。管理しているのは物工4年栗田です。 基本的に誰でも編集できる設定なので便利ですがセキュリティ的にはもろいです。設定を変えればパスワード制にもできるので、そこらへんは様子を見て判断します。右上にこの「wikiに参加」というものがありますが、登録をしなくてもページの編集は自由にできるのでご心配なく。ログインも特に必要ないです。 &color(red){プログラムをそのまま載せるページを作るときは、@wikiモードではなくそのままテキストモードを選んだほうがいいです。@wikiモードだとwikiとプログラムの文が反応して変なことが起こるケースがあります。新規ページ作成時にこの選択ができます。} wikiの使い方は左にある@wikiご利用ガイドを見てください。 磁性体班以外の人の需要があるか知りませんが、この場を情報交換に使ってくれたら他の班の近況もわかるので僕としては嬉しいです。うちの班にはプログラミングに精通した人がいないので、他の班が作っているプログラムを見たいなあという思いもあります。もしこの場を情報交換の場に使っていただけるなら、新しいページを作ってここのすぐ下に○○班というリンクをはってください。利用者がいたらいつかトップページを整理しておきます。情報交換に使わないまでも、磁性体班のものに関する感想や意見があれば是非書き込んで下さい。 [[hex班>hex班]] *近況報告 5/7伊藤 ようやく、一応Nが大きくても表示できるものができました。 FFTで、違うライブラリを使いました。512は重すぎるためか動きにくいです。 N=256でα=3.5、v=0.1とすると、島状の模様を作ることができました。 &ref(添付用5.zip) 5/4島崎 遅くなってしまってすみません。添付用1のイジングモデルのg_Temparture(int 1~4)と添付用3の準イジングモデルのalpha(float 1.0~4.0)をGLUIを使って変えられるようにしました。 GLUIのインクルードファイルについてはREADME.txtを見てください。 alphaの刻み幅が調整できないので、直接入力した方がいいと思います。 &ref(添付用4.rar) 4/8伊藤 ありがとうございます。僕のでもN=128では動きませんでした。64でも何となく磁区ができる様子がわかると思います。 Nが大きいとさらに論文に近づけると思うのですが…。 オイラー法ですがScilabでのものをアップしておきます。サイズはN=256です。 alpha=1.5で迷路状、alpha=3.5で島状になっていました。論文とは少し違うかもしれません。 &ref(test9.sce) あと、今後の計画を書きます。 プログラムについては、インターフェイスを充実させようと思います。 実験については4月中に装置や試料について、見ておきます。 試料については用意してくれるものもあるのですが、作らせてもらえるとのことなので(1日程度でできる)、やってみましょう。 いろいろな磁石を貸してくれるそうなので、それを使った小物展示も用意したいと思います。 今までは、割り当てなどはしっかり決めていなかったのですが、今後はみなさんに仕事を割り振れると思います。 4/8栗田 一応目標のものが形になりました。 &ref(添付用3.zip) 大きな問題点は僕のパソコンだとNを128以上にすると動かなくなることです(エラーが出て終了するorz)。もう一つ細かいことですが、何故かコンパイルのときに警告文が出てきます。opengl関連です。理由わかったら教えてください。←自己解決しました。onestep()の引数をint型に設定し、onestepが呼び出されるところで0を引数にすれば治ります。この引数0は関数ないでは使われませんが。 4/3伊藤 昨日のやつをアップします。 模様は変ですがだいたいの挙動がわかると思います。 &ref(test5.sce) 4/2伊藤 精度を考えるとかなり問題なのですが、逆フーリエ変換で出てくるφを実部だけ 残すということをすると発散はしないようです。(虚部を強制的に0にする) 模様はできるのですが荒っぽいことをしているので、論文の形とは違うようです。 また後でアップロードするので参考にしてください。 また、今田先生に聞いたところ、微分方程式は線形項については厳密に解が出るので、 そこからのずれとして非線形項をルンゲクッタの近似等で加えるべきであるとのことでした。 3/29伊藤 「いい」アルゴリズムを考える必要があるようです。 予告していた通り、今田先生のところに4/1(アポは3時)に 質問をしに行こうと思います。 そこでうまい解決策が見つかるといいと思います。 3/27栗田 まあ差分方程式のアルゴリズムが悪いんだろうね。数値解析の授業でも、発散させない条件みたいなのあったし。 3/26伊藤 2πも入れないと変だね。 で、double型にして2πつけると、やっぱり発散するんだよね。 ところで、Scilabで同じようなのを作ってみました (FFT()という2次元高速フーリエ変換の組み込み関数が入っているので、プログラム自体はシンプルに見えます)。 どうもこちらでも発散が起きるようです。 アップしておきます。 &ref(test2.sce) 3/25栗田 プログラム読んでくれてありがとう。確かにk1とk2は問題ありそうですね。ただ、多分だけど2πかけたほうがいい気がします。exp(kN)=1を考えると、k=整数×2π/Nだと思います。それとint型の割り算はdouble型にならずに切り捨てられるから、k1=i/(N*N)、k2=(i%N)/Nをやると両方とも0になると思います。それもふまえて int i, k1, k2; のところを int i, k_1, k_2; double k1, k2; にして、 k_1 = i/N; k_2 = i%N; k1 = (2*M_PI*k_1)/N; k2 = (2*M_PI*k_2)/N;としたのだが、あまり効果がなかったorz 3/25伊藤 栗田くんのプログラム(fft7.c)で発散していた原因はおそらく void function のところです。 波数のところを k1=i/(N*N) k2=(i%N)/N とすれば大丈夫だと思います 3/22栗田  お久しぶりです。フーリエ変換についてですが、2次元のフーリエ変換というのはわりと研究されているわけで、自作のプログラムを作るよりライブラリに頼るべきだと思います。高速フーリエ変換(FFT)なんて素人には組みにくいですし。かといって正直なフーリエ変換はコンピューターに負担をかけます。FFTは2の累乗じゃないとできないわけで、それであの論文は1辺512サイトでやってるんだと思います。僕は[[こちらのページ>http://www5.airnet.ne.jp/tomy/cpro/science.htm]]からFFTをぱくってきました。それを用いて作った微分方程式のシミュレーションの失敗作を挙げておきます。 &ref(添付用2.zip)  一応上のページにいかなくてもこのzipの中身だけで動くはずです。このzipの中には上のページからぱくったものがいろいろ入っているので、説明はそちらを参照してください。自作の関数などについては一応コメントをいれました。  何が失敗かって、fft7を実行してみればわかると思いますが、35ステップくらいで発散して変な感じになります。test2も同様です。とても使い物になりません。僕が作った差分方程式が悪いのですが、どこが悪いかちょっとわかりません。  さて、前回の話し合いから少し日が空いたわけですが、もし今の段階であまりみんなの開発が進んでいないようなら、僕の失敗作を見て改善してほしいです。もうすぐ自分のものができるという状況なら、それを完成させて僕の失敗作はお蔵入りにしましょう。 3/18栗田 m(r)の時間発展が上のpdfファイルに出てくる偏微分方程式に従うことに関する解説は今田先生の教科書の81ページあたりにあります。 追記:今田先生の教科書の記述とはあまり関係のない考察をしてみました。雑な議論ですが直感的理解くらいにはなると思います。 &ref(時間発展.doc) [[上のドキュメントの議論を少し補足しました>補足]](3/19栗田) 3/18伊藤 以前配った英語の論文についての解説です。 だいたい2節目のところの要約です。 &ref(準イジングモデル.pdf) 何か変なところ、わからないところあれば言ってください。 あと準イジングモデルという題名ですが勝手につけたものです。 英語ではIsing-like modelとなっています。 3/17伊藤 まずは、栗田くんありがとう。 一応、今田先生のところに行こうと思うんですが、まだアポが取れていない状況です。 あと、メトロポリス法についての解説をアップしておきます。 &ref(資料3.pdf) 3/17栗田 とりあえず磁場の無い等温イジングモデルはできたわけで、磁場や温度変化を考えるのも、これらのパラメータとメトロポリスステップ数をグローバル変数にして、パラメータをステップ数の関数にすればある程度のパラメータの時間変化が考慮できると思います。できればアルゴリズムの根本的な改善も視野に入れつつ先生に質問に行きたいなあ。 3/17栗田 [[動的イジングモデルのシミュレーションプログラム>http://www36.atwiki.jp/apmay?cmd=upload&act=open&pageid=1&file=%E6%B7%BB%E4%BB%98%E7%94%A8.zip]]を作りました。今田先生がプロジェクター使ってやってたことが再現されると思います。ソースコードやexeファイルをつめておきました。使ったアルゴリズムはメトロポリス法と呼ばれるものです。 ※使い方(ウィンドウズの人向け) glut-3.7.6-binの中にglut32.dllがあるのでこれをC:\WINDOWS\system32にもって行きます。その後isingのなかにあるexeファイルをクリックして下さい。50_の後ろの数字は温度です。右クリックで単位時間進みます。左クリックで単位時間×100進みます。左クリック連打は非推奨です。visualc++を持ってる人は、pdfファイルにあるように中身ファイルを配置するとコンパイルできるようになると思います。 &ref(ising.gif)こんな感じになります 3/15伊藤祐斗 いくつか資料をアップロードします。 二次元イジングモデルについての解説です。 &ref(資料.pdf) 二次元イジングモデルのシミュレーション(メトロポリス法についてはあとで)についての解説です。 &ref(資料2.pdf) 3/10伊藤祐斗 下記のプログラムに、周期的境界条件についてのコメントをいれました。C言語で実装したいと思っています。 各ピクセルに色を割り当てて表示するプログラムというのがあって、今回作りたいプログラムでも使えそうなので、[[ここ>雲]]にプログラムをアップしておきます。実際は磁場の効果を取り入れるためにエネルギーの変化分DeltaEを修正したり、アニメーションのプログラムにしなくてはいけません。 ※3/15追加事項 プログラムは[[こちら>scilabイジング]]です。 3/4(水)伊藤祐斗 遅くなって申し訳ありません。Scilabで描いたイジングモデル(磁場なし)のプログラムをアップロードします。 表示部分のみです   (全磁化や全エネルギーやスピン反転の受け入れ回数等の計算部分は入れずに、純粋に絵だけを表示するという意味)←3/15挿入 メインプログラムはIsing.sceサブログラムはDelta.sce という名まえで保存してください。Consoleでexec 'Ising.sce'と入力すれば動くはずです。このままで使えるはずです。 **公式の操作方法 -[[@wikiの基本操作>http://atwiki.jp/guide/category2.html]] -[[用途別のオススメ機能紹介>http://atwiki.jp/guide/category22.html]] -[[@wikiの設定/管理>http://atwiki.jp/guide/category6.html]] -[[@wiki ご利用ガイド>http://atwiki.jp/guide/]] -[[よくある質問>http://atwiki.jp/guide/category1.html]] -[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ>http://sns.atfb.jp/view_community2.php?no=112]] -[[@wiki更新情報>http://www1.atwiki.jp/guide/pages/264.html]] -[[@wikiへのお問合せフォーム>http://atwiki.jp/helpdesk]] 等をご活用ください

表示オプション

横に並べて表示:
変化行の前後のみ表示: