So-net無料ブログ作成
検索選択
データ解析環境R ブログトップ

R によるランダムフラクタル [データ解析環境R]

 ランダムな地形データなどを作成するRの関数を作成した。Rでの複素数の扱いがわからず苦労した。関数の返り値は、N*Nの実行列。fftw()をコールしているので、rimageパッケージをロードしておく必要がある。

f.ff <- function(N,H=0.85){	# フラクタル次元 : 2-H、条件:0 < H < 1、N は偶数
A <- array(0+0i,c(N,N))
# 左上と右下
for(I in 0:(N/2)) {
	for(J in 0:(N/2)) {
		phase <- 2 * 3.141592 * runif(1)
		if (I != 0 | J != 0) {
			rad <- ((I*I+J*J)^( -(H+1)/2 )) * rnorm(1)
		} else {
			rad <- 0
		}
		A[I+1,J+1] <- complex(1,rad * cos(phase), rad * sin(phase))
		if (I == 0) {
			I0 <- 0
		} else {
			I0 <- N - I
		}
		if (J == 0) {
			J0 <- 0
		} else {
			J0 <- N - J
		}
		A[I0+1,J0+1] <- Conj(A[I+1,J+1])
	}
}
# 虚部は0
A[N/2+1,1]     <- complex(1, Re(A[N/2+1,1])    , 0)
A[1,N/2+1]     <- complex(1, Re(A[1,N/2+1])    , 0)
A[N/2+1,N/2+1] <- complex(1, Re(A[N/2+1,N/2+1]), 0)
# 右上と左下
for(I in 1:(N/2-1)){
	for(J in 1:(N/2-1)){
		phase <- 2 * 3.141592 * runif(1)
		rad <- ((I*I+J*J)^( -(H+1)/2 )) * rnorm(1)
		A[I+1,N-J+1] <- complex(1,rad * cos(phase), rad * sin(phase))
		A[N-I+1,J+1] <- Conj(A[I+1,N-J+1])
	}
}
B <- fftw(A,1)	# 離散逆フーリエ変換
Re(B)			# 虚部のごみを除いた実部を返す
}
 次の本を参考にした。
フラクタルイメージ―理論とプログラミング

フラクタルイメージ―理論とプログラミング

  • 作者:
  • 出版社/メーカー: シュプリンガー・フェアラーク東京
  • 発売日: 1990/08
  • メディア: 大型本

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

R によるテキストデータの解析 第1回 [データ解析環境R]

 Windows環境でRでどこまでテキストデータの解析ができるかやってみる。参考になるサイトは、未検索・要調査。今までの成果は以下のとおり。

.txtの前処理
	半角’(アポストロフィー)で始まる行を削除
茶筌で単語と品詞をTAB区切り出力	http://chasen.naist.jp/hiki/ChaSen/						
	chasen -F "%m\t%U(%P-)\n"  test.txt > test.cha	
		未知語をNullにしないため出現形でアウトプット	
.chaの後処理								
	EOSを、EOSタブEOSに置換					
Rでの読み込み								
	test <- read.table("test.cha",header=F)
		1列目:単語(出現形)
		2列目:ハイフン区切り品詞		
名詞のみ抽出								
	tmp <- which(substring(test[,2],1,4) =="名詞")
		行番号抽出
		2列目の先頭4バイトで比較
名詞のみのオブジェクト作成
	test.meishi <- test[tmp,]			

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問
データ解析環境R ブログトップ