Suche senden
Hochladen
Rでマンデルブロ集合
•
5 gefällt mir
•
1,737 views
Yoshiteru Kamiyama
Folgen
Melden
Teilen
Melden
Teilen
1 von 30
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
sleepy_yoshi
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
sleepy_yoshi
Zetavalue
Zetavalue
guest1637f9
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
Empfohlen
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
sleepy_yoshi
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
sleepy_yoshi
Zetavalue
Zetavalue
guest1637f9
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
2値分類・多クラス分類
2値分類・多クラス分類
t dev
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
Python opt
Python opt
Mikio Kubo
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
hirokazutanaka
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
クラシックな機械学習の入門 5. サポートベクターマシン
クラシックな機械学習の入門 5. サポートベクターマシン
Hiroshi Nakagawa
Or seminar2011final
Or seminar2011final
Mikio Kubo
Cv 14th
Cv 14th
Junichi Ido
Gurobi python
Gurobi python
Mikio Kubo
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
線形計画法入門
線形計画法入門
Shunji Umetani
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
Eric Sartre
20111107 cvim(shirasy)
20111107 cvim(shirasy)
Yoichi Shirasawa
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
sleipnir002
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
Takeshi Arabiki
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
第17回コンピュータビジョン勉強会@関東
第17回コンピュータビジョン勉強会@関東
ukyoda
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
Shuyo Nakatani
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Tetsuya Yoshida
Weitere ähnliche Inhalte
Was ist angesagt?
2値分類・多クラス分類
2値分類・多クラス分類
t dev
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
Python opt
Python opt
Mikio Kubo
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
hirokazutanaka
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
クラシックな機械学習の入門 5. サポートベクターマシン
クラシックな機械学習の入門 5. サポートベクターマシン
Hiroshi Nakagawa
Or seminar2011final
Or seminar2011final
Mikio Kubo
Cv 14th
Cv 14th
Junichi Ido
Gurobi python
Gurobi python
Mikio Kubo
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
線形計画法入門
線形計画法入門
Shunji Umetani
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
Eric Sartre
20111107 cvim(shirasy)
20111107 cvim(shirasy)
Yoichi Shirasawa
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
sleipnir002
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
Takeshi Arabiki
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
第17回コンピュータビジョン勉強会@関東
第17回コンピュータビジョン勉強会@関東
ukyoda
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
Was ist angesagt?
(20)
2値分類・多クラス分類
2値分類・多クラス分類
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
Python opt
Python opt
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
東京都市大学 データ解析入門 4 スパース性と圧縮センシング1
色々なダイクストラ高速化
色々なダイクストラ高速化
クラシックな機械学習の入門 5. サポートベクターマシン
クラシックな機械学習の入門 5. サポートベクターマシン
Or seminar2011final
Or seminar2011final
Cv 14th
Cv 14th
Gurobi python
Gurobi python
動的計画法を極める!
動的計画法を極める!
線形計画法入門
線形計画法入門
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
20111107 cvim(shirasy)
20111107 cvim(shirasy)
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
第17回コンピュータビジョン勉強会@関東
第17回コンピュータビジョン勉強会@関東
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Ähnlich wie Rでマンデルブロ集合
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
Shuyo Nakatani
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Tetsuya Yoshida
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
Shuyo Nakatani
数列で学ぶ初めての CommonLisp #fibonacci
数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
Sec15 dynamic programming
Sec15 dynamic programming
Keisuke OTAKI
円錐曲線の極座標表示
円錐曲線の極座標表示
Maruyama Tetsutaro
代数トポロジー入門
代数トポロジー入門
Tatsuki SHIMIZU
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
Naoki Kitora
TopCoder SRM614 解説
TopCoder SRM614 解説
EmKjp
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
Takahiro (Poly) Horikawa
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
kakira9618
【展開用】日曜数学会 Sinc関数の積分について
【展開用】日曜数学会 Sinc関数の積分について
和人 桐ケ谷
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Unity Technologies Japan K.K.
Rで実験計画法 前編
Rで実験計画法 前編
itoyan110
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
Ähnlich wie Rでマンデルブロ集合
(15)
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
数列で学ぶ初めての CommonLisp #fibonacci
数列で学ぶ初めての CommonLisp #fibonacci
Sec15 dynamic programming
Sec15 dynamic programming
円錐曲線の極座標表示
円錐曲線の極座標表示
代数トポロジー入門
代数トポロジー入門
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
TopCoder SRM614 解説
TopCoder SRM614 解説
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
【展開用】日曜数学会 Sinc関数の積分について
【展開用】日曜数学会 Sinc関数の積分について
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Rで実験計画法 前編
Rで実験計画法 前編
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Mehr von Yoshiteru Kamiyama
オイラーの公式で感じる次元の呪い
オイラーの公式で感じる次元の呪い
Yoshiteru Kamiyama
Tokyo.rの輪
Tokyo.rの輪
Yoshiteru Kamiyama
Listを串刺し
Listを串刺し
Yoshiteru Kamiyama
R language definition3.1_3.2
R language definition3.1_3.2
Yoshiteru Kamiyama
rで踊るパスタ
rで踊るパスタ
Yoshiteru Kamiyama
黄金比.再帰
黄金比.再帰
Yoshiteru Kamiyama
医療費ts
医療費ts
Yoshiteru Kamiyama
Mehr von Yoshiteru Kamiyama
(7)
オイラーの公式で感じる次元の呪い
オイラーの公式で感じる次元の呪い
Tokyo.rの輪
Tokyo.rの輪
Listを串刺し
Listを串刺し
R language definition3.1_3.2
R language definition3.1_3.2
rで踊るパスタ
rで踊るパスタ
黄金比.再帰
黄金比.再帰
医療費ts
医療費ts
Rでマンデルブロ集合
1.
1.0
0.5 Rでマンデルブロ集合 Im(d) 0.0 -0.5 -1.0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 step: 0.03 n = 2 @manozo Tokyo.R#20 LT1 at Nifty 28.JAN.2012
2.
なんで今さらマンデルブロ集合? • マンデルブロ博⼠の「禁断の市場」
を読んだから クオンツ⼤仏様の ご推薦本 • お断り – 「マンデルブロ集合」についてはwikipediaな どを⾒るか「禁断の市場」を読んでください。 – 数学は数ⅡB?まで(⽂系) • 複素数は⾼校時代にうっすらやった記憶あり 2
3.
でなんとかならないものか?
と考えた • マンデルブロ集合って何という⽅へ – これwikipediaマンデルブロ集合 •マンデルブロ集合はどこだと思いますか? 3
4.
偶然 plot(1+1i) ができること
を 知 1.4 複素平⾯(ガウス平⾯) る Y 1.2 軸 が Im(1 + (0+1i)) これ 1.0 虚 部 0.8 0.6 0.6 0.8 1.0 1.2 1.4 Re(1 + (0+1i)) X軸が実部 4
5.
「もしかしたら出来るかも」と
思 っ 漸化式 た Zk+1=Zk 2+C Z0=0 複素数Cにおいて発散するか否か? 発散しないCがマンデルブロ集合 5
6.
⼿順 • 複素数のリスト(ベクトル)を⽤意 • マンデルブロ集合に含まないものをリストアップ
– ネガフィルムのように • plot() – 以上なるべくRっぽく 6
7.
準備(特別なpackage使わないで) • 材料 –
outer(): 複素数のリスト作成 – complex(real=1,imag=1) #‐>1+1i • Mod(): 絶対値 2を超えると発散してしまうらしい – 無限のチェックはいらない(is.infinite()) – setdiff(): 集合演算(差) – plot(): 複素数もplotで 7
8.
複素数の
絶対値とは a<‐c() step=0.05 a<‐outer(seq(‐2,2,step),seq(‐2,2,step), function(x,y)complex(r=x,i=y)) 原点からの距離 d <‐ c() for(c in a){ 2 if(Mod(c) < 2) #⿊いところが絶対値が2未満 1 d<‐c(d,c) Im(d) 0 } -1 plot(d,pch=19,asp=1) -2 -3 -2 -1 0 1 2 3 Re(d) 8
9.
スクリプト1(複素数のリストを⽤意) forの⼆重ループを使わずに
outer(1:9,1:9,"*") step=0.1 で九九 outer(1:9,1:9)でもOK! g<‐outer(seq(‐2,1,step), seq(‐1,1,step), function(x,y)complex(r=x,i=y)) 1.0 dim(g) #‐> 31 21 0.5 length(g) #‐> 651 Im(a) 0.0 plot(g) -0.5 ⼀粒⼀粒発散するか確認 -1.0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 9 Re(a)
10.
スクリプト2(マンデルブロ集合に含まれるか否か) • zの絶対値が2を超えるものをリストアップ m <‐c() #ここへリストアップ for(c in g){
z<‐0 #初期値は0とする(⼀般的なマンデルブロ集合) for(i in 1:100){#100回を超えて発散しないものをマンデルブロ集合とする z <‐ z^2 + c #漸化式 if(Mod(z) > 2){ #絶対値が2を超えると発散(マンデルブロ集合ではない) m<‐c(m,c) #リストに追加 break #抜ける } } 絶対値が2を超えるとzは無限遠に⾶んでいく } 10
11.
スクリプト3(plotする) • mm<‐setdiff(g,m) #集合演算(差をとる) • plot(mm)
1.0 おぼろげながら 0.5 ⾒えてきた Im(g) 0.0 -0.5 1.0 0.5 Im(m) 0.0 -1.0 -0.5 -2.0 -1.5 -1.0 -0.5 0.0 Re(g) -1.0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 Re(m) plot(m) この⼀粒⼀粒がマンデルブロ集合 11
12.
mandelbrot()として
定義する • mandelbrot<‐function(step=0.1){...} #stepのデフォを0.1に – ステップ1,2,3を囲むだけ • おまけはありますが 12
13.
やっぱり
カラフル じゃないと... mandelbrot<‐function(step=0.1,n=2){ g<‐outer(seq(‐2,1,step),seq(‐1,1,step),function(x,y)complex(r=x,i=y)) g<<‐g[Mod(g)<=2] #絶対値2以下のものだけにする #‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ m<‐c()#マンデルブロ集合でないもの(絶対値が2より⼤きいものを⼊れる) mc<‐c()#発散するまでの回数を⼊れる 発散した回を for(c in g){ z<‐0 #初期値 for(i in 1:100){ z <‐ z^n + c カウントして⾊づけ if(Mod(z) > 2){ m <‐c(m,c);mc<‐c(mc,i);break}}} #‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ #回数で⾊分け plot(m,pch=pch,xlab=paste("step:",step,"n = ",n), xlim=c(‐2,1),ylim=c(‐1,1),col = colors()[mc*30]) m<<‐m #永続化(関数の外でも使えるように) mc<<‐mc print(length(m)) } length(colors())#‐>657⾊ 13
14.
1.0
0.5 デモ mandelbrot(0.03) Im(d) 0.0 -0.5 -1.0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 step: 0.03 n = 2 14
15.
ちょっとかわいいマンデルブロ集合ですが
い か > mandelbrot(0.03) が で n し Z k +1 = Z k + C ょ う おまけ(nを変えてみる) か > mandelbrot(0.03,11) ? Rらしくいろいろ遊べます 15
16.
たとえば par(mfrow=c(2,5))#画⾯を2×5=10 for(i in 1:10)#nを1〜10に mandelbrot(0.1,i)
16
17.
1.0
1.0 1.0 1.0 1.0 0.5 0.5 0.5 0.5 0.5 Im(d) Im(d) Im(d) Im(d) Im(d) 0.0 0.0 0.0 0.0 0.0 -0.5 -0.5 -0.5 -0.5 -0.5 -1.0 -1.0 -1.0 -1.0 -1.0 -2.0 n=1 -1.0 0.0 1.0 -2.0 n=2 -1.0 0.0 1.0 -2.0 n=3 -1.0 0.0 1.0 -2.0 n=4 -1.0 0.0 1.0 -2.0 n=5 -1.0 0.0 1.0 step: 0.1 n = 1 step: 0.1 n = 2 step: 0.1 n = 3 step: 0.1 n = 4 step: 0.1 n = 5 1.0 1.0 1.0 1.0 1.0 0.5 0.5 0.5 0.5 0.5 Im(d) Im(d) Im(d) Im(d) Im(d) 0.0 0.0 0.0 0.0 0.0 -0.5 -0.5 -0.5 -0.5 -0.5 -1.0 -1.0 -1.0 -1.0 -1.0 -2.0 n=6 -1.0 0.0 1.0 -2.0 n=7 -1.0 0.0 1.0 -2.0 n=8 -1.0 0.0 1.0 -2.0 n=9 -1.0 0.0 1.0 -2.0 n=10 -1.0 0.0 1.0 step: 0.1 n = 6 step: 0.1 n = 7 step: 0.1 n = 8 step: 0.1 n = 9 step: 0.1 n = 10 17
18.
円の⼤きさは回数のlog
たとえば2 mct<‐table(mc) plot(mct,col=colors()[30*as.integer(names(mct))]) 1.0 1500 発散するまで 0.5 の回数分布 1000 table(mc) Im(m) 0.0 500 -0.5 -1.0 0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1 7 15 24 33 42 51 60 69 81 90 99 Re(m) mc 18
19.
たとえば3
plot3d()もおもしろい • 複素数をそのまま渡してもOK! – 3D表⽰ > library(rgl) > plot3d(m,mc,col=mc) 19
20.
?complex でヘルプをみると
... 更に、複素数値に対する初等的な三⾓関数、 対数関数、指数関数が使える。 – http://www.is.titech.ac.jp/~mase/mase/h tml.jp/temp/complex.jp.html とある。 もちろん複素数に対する四則も 20
21.
1.0
1.0 0.5 0.5 0.0 0.0 -0.5 -0.5 -1.0 -1.0 逆数 -1 0 1 2 3 -1.5 -1.0 -0.5 0.0 0.5 1.0 -0.5 0.0 0.5 1.0 1.5 逆数 3 sin() sin() cos() cos() 2 2 1 1 0 0 -1 -1 -2 -2 -3 10 tan() 5 0 5 10 log() 05 00 05 00 05 exp() 10 15 20 25 21
22.
まとめ • Rでマンデルブロ集合が何となく理解できる
ようになるはず • zoom in しなくても楽しい • ⾊々と試してみて下さい – ジュリア集合(Z0を0以外、Cを固定)デモします – 解像度を上げる – (⾊|n)を変える – アニメーション(gifアニメーションなど) 22
23.
参 考 • マンデルブロ集合の不思議な世界 –
マンデルブロ集合の作り⽅ – あじさん • マンデルブロ集合のjavaアプレットあり • wikipedia マンデルブロ集合 • マンデルブロー集合ー2次関数の複素⼒学系⼊⾨ – 川平 友規(名古屋⼤学⼤学院多元数理科学研究科) – 平成24年1⽉10⽇ 23
24.
謝謝
2 1 Im(setdiff(a, d)) 0 -1 -2 -2 -1 0 1 2 Re(setdiff(a, d)) 24
25.
Gallery
25
26.
2
ジュリア集合で遊ぶ 1 Im(d) 0 -1 -2 -2 -1 0 1 2 step: 0.1 ri = -0.4-1.1i • ソースは次 > par(bg=1)#バックを⿊に > julia(step=0.1, n=2, col=30) • パラパラジュリア > for(i in 1:100)julia() • サイケジュリア 2 1 > for(i in 1:100) Im(d) 0 -1 + julia(col=sample(1:100,1)) -2 -2 -1 0 1 2 step: 0.1 ri = 0.9+1.5i 26
27.
julia<‐function(step=0.1,pch=19,col=30,n=2){ a<‐outer(seq(‐2,2,step),seq(‐2,2,step),
function(x,y)complex(r=x,i=y)) a<<‐a[Mod(a) <= 2] ri<‐sample(a,1)#Zの初期値をランダムに選ぶ d<‐c() dc<‐c() for(z in a){ c<‐ ri zz<‐z for(i in 1:100){ zz <‐ zz^n + c if(Mod(zz) >= 2){ d <‐c(d,z) dc<‐c(dc,i) #何回⽬で発散したか break } } } #発散した回数で⾊分け plot(d,pch=pch,xlab=paste("step:",step,"ri = ",ri),xlim=c(‐2,2),ylim=c(‐2,2), col=colors()[dc+col]) d<<‐d dc<<‐dc } 27
28.
ジュリアサイコロ > par(bg=1,mfrow=c(2,3)) > for(i in 1:6)julia(n=i)
2 2 2 1 1 1 Im(d) Im(d) Im(d) 0 0 0 -1 -1 -1 -2 -2 -2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 step: 0.1 ri = 0.4-1.3i step: 0.1 ri = -0.1-1.6i step: 0.1 ri = -1.2+0.5i 2 2 2 1 1 1 Im(d) Im(d) Im(d) 0 0 0 -1 -1 -1 -2 -2 -2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 step: 0.1 ri = -1.6+2i step: 0.1 ri = 0+1.2i step: 0.1 ri = 0.1+1.3i 28
29.
マンデルブロ
マスク mandelbrot(0.03)#解像度(マシンに合わせて) library(rgl) rgl.bg(col=1)#バックは⿊ plot3d(‐1i/tan(m),mc,col=heat.colors(100)[dc]) #無限ループで回す(⼿ぶらで)ESCでストップ。 i<‐0;while(1)rgl.viewpoint(i<‐i+1) 29
30.
以上 デモしました • ジュリアサイコロはお初。
30
Jetzt herunterladen