Fortran

連続だがいたるところ微分不可能な関数

関西すうがく徒の集いで相転移Pさんが話していた"連続だがいたるところ微分不可能な関数'' Weierstrass functionが気になったので荒いですけど実際にプロットしてみました.Weierstrass functionの定義は次の通り. Weierstrass function ここで01+\frac{3}{…

ビューティフルコード

いつか読むはきっと読まない,ということで学校で『ビューティフル・コード』を借りてきました.ビューティフルコード (THEORY/IN/PRACTICE)作者: Brian Kernighan,Jon Bentley,まつもとゆきひろ,Andy Oram,Greg Wilson,久野禎子,久野靖出版社/メーカー: オ…

離散フーリエ変換のコード

フーリエ変換については下記のURLが分かりやすい。 フーリエ級数展開をベクトルで直観的に理解するblog.physips.com デジタル信号→離散フーリエ変換(DFT)→フーリエ級数(FS)→元の関数の出力(FA)という感じのコードです. 更新していきますが,とりあえずメモ…

Fortranのnint

Fortranのnint(実数を四捨五入する関数)がどこで四捨五入してるのかなー,と思い調べました. 具体的に言うと, 1. 四捨五入する小数点以下の桁数 2. 整数部分は関係ないのかどうか?入力 Program round implicit none integer :: i real(8),dimension(8) ::…

モンテカルロ法 精度

モンテカルロ法において粒子に対する精度の話になったときに「えー,粒子数をとしたとき精度はでしょー」という話を聞いたときから,モンテカルロ法の精度が気になってはいたんですよね.いったい精度がとはどういう状態を指すのか. というわけで今回調べて…

コンパイラ頼みでもいいけれども

気になったのは次のコードですねー. program MatrixOut implicit none real(8), dimension(2,2,2) :: target integer :: i, j, k open(10,file='test.dat',form='formatted',status='unknown') do i = 1,2 do j = 1,2 do k = 1,2 target(i,j,k)=i+j+k end d…

行列のprint表示

今日ホゲーとなったのは次の書き方. real(8), dimension(2,2,2) :: target integer :: i, j, k do i = 1,2 do j = 1,2 do k = 1,2 target(i,j,k)=i+j+k end do end do end do do i = 1,2 do j = 1,2 do k = 1,2 print *, "i=", i,"j=",j, "k=",k, "matrix="…

スーパーコンピュータことはじめ

はじめに研究のためスーパーコンピュータを使うこともあるのですが,その原理を簡単に説明します. 「スーパーコンピュータって普通のコンピュータと何が違うの?」,「どういったプログラム方法があるの?」ぐらいのレベルを想定しています. あくまでメモ…

惑星シミュレータ(古典力学の範疇内で)

前フリprologue 宇宙、と聞くとどうしてもプトレマイオスのような同心円の物を浮かべてしまいます.しかし、実際地球が動く軌道は太陽を一つの焦点とする楕円軌道を描いています.これは多体問題を考えなくても古典的な2体問題の解として導くことができます…