SlideShare a Scribd company logo
1 of 24
Download to read offline
IFSを使ったフラクタルの描画
岩淵 勇樹 (@butchi_y)
まずは個人活動の紹介
フラクタル音楽
Twitter, Instagramで #フラクタル音楽 を検索!
0:00 / 0:12
フラクタルとは?
「自己相似」という概念
相似図形のコピーが自分自身を構成している
これを幾何学的に捉えたもの
フラクタルの例
コッホ曲線 (Koch curve)
0. 線分を引く
1. 線分を3等分し、中央の線分を1辺とする正三角形を描き、
下の辺を消す
2. 得られたそれぞれの線分に対して同じ操作を繰り返す
この操作を無限に繰り返して得られる図形がコッホ曲線
参考: https://ja.wikipedia.org/wiki/コッホ曲線
フラクタルの例
シェルピンスキーのギャスケット (Sierpinski gasket)
0. 正三角形を描く
1. 正三角形の中央の逆正三角形を取り除く
2. 得られたそれぞれの正三角形に対して同じ操作を繰り返す
この操作を無限に繰り返して得られる図形がシェルピンスキーの
ギャスケット
参考: https://ja.wikipedia.org/wiki/シェルピンスキーのギャスケット
IFSとは
Iterated Function System
反復関数系。
「関数(function)による変換」
を
「反復(iteration)」
して得られるフラクタル
先ほどの例でいうと
コッホ曲線
1. 点集合を に縮小
i. 回転せず (0, 0) の位置に配置
ii. 60 回転し ( , 0) の位置に配置
iii. −60 回転し ( , ) の位置に配置
iv. 回転せず ( , 0) の位置に配置
この操作を無限回繰り返す
3
1
∘
3
1
∘
2
1
6
√3
3
2
数式で書くと
コッホ曲線
f (x) = x
f (x) = e x +
f (x) = e x + ( + i)
f (x) = x +
※ 通常はアフィン変換(行列計算)を使いますが、
個人の趣向で複素平面上の演算にしています。
1 3
1
2 3
1 3
πi
3
1
3 3
1 − 3
πi
2
1
6
√3
4 3
1
3
2
先ほどの例でいうと
シェルピンスキーのギャスケット
1. 点集合を に縮小
i. 回転せず (0, 0) の位置に配置
ii. 回転せず ( , 0) の位置に配置
iii. 回転せず ( , ) の位置に配置
この操作を無限回繰り返す
2
1
2
1
4
1
4
√3
数式で書くと
シェルピンスキーのギャスケット
f (x) = x
f (x) = x + ( + i)
f (x) = x +
1 2
1
2 2
1
4
1
4
√3
3 2
1
2
1
どこからスタートするか
初期集合は、点でも 線でも 面でもいい
最終的には 点でも 線でも 面でもなくなる
反復回数: 1
どこからスタートするか
初期集合は、点でも 線でも 面でもいい
最終的には 点でも 線でも 面でもなくなる
反復回数: 5
どこからスタートするか
初期集合は、点でも 線でも 面でもいい
最終的には 点でも 線でも 面でもなくなる
反復回数: 10
ここでデモ
fractalifs
今回のために制作した
HTML5(JavaScript)製フラクタルエディター
https://butchi.github.io/fractalifs/
(スマホ未対応…。)
fractalifsの特徴
フラクタルを点集合として描画
内部的には複素IFSを利用
インタラクティブに編集できる
作ってみてわかったこと
かなり広い範囲のフラクタルが描画できるが、本手法だけで
はカバーしきれない(ex: コッホ雪片)
矢印の方向(複素数の偏角)が重要
自己紹介
岩淵 勇樹
2012年金沢大学自然科学研究科修了
博士(工学)
個人サイト: http://butchi.jp/
ご清聴ありがとうございました。
https://butchi.github.io/fractalifs/
気づき
配列
複素数(点)、線分は配列ライクオブジェクトにするのがよ
さげ
点は  get x で  this[0] 、  get y で  this[1] を返す
線分は  get start で  this[0] 、  get end で  this[1] を返
す
矢印
矢印を引くのはCanvasよりSVGの方がよさげ
きれいな線が引ける
描画コストも低い(はず)
複素数演算
複素数演算の plus ,  sub ,  mult 等はユーティリティー関数として
 util.js にまとめて
import {plus, sub, mult} from './util';
のようにimportすればどのJavaScriptファイルからでも気軽に呼
べる

More Related Content

What's hot

【DL輪読会】Scaling laws for single-agent reinforcement learning
【DL輪読会】Scaling laws for single-agent reinforcement learning【DL輪読会】Scaling laws for single-agent reinforcement learning
【DL輪読会】Scaling laws for single-agent reinforcement learningDeep Learning JP
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925小川 雄太郎
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)Morpho, Inc.
 
【DL輪読会】Mastering Diverse Domains through World Models
【DL輪読会】Mastering Diverse Domains through World Models【DL輪読会】Mastering Diverse Domains through World Models
【DL輪読会】Mastering Diverse Domains through World ModelsDeep Learning JP
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...Deep Learning JP
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用Ryo Iwaki
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用Yasunori Ozaki
 
強化学習の実適用に向けた課題と工夫
強化学習の実適用に向けた課題と工夫強化学習の実適用に向けた課題と工夫
強化学習の実適用に向けた課題と工夫Masahiro Yasumoto
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門tmtm otm
 
【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic AssemblyDeep Learning JP
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep LearningSeiya Tokui
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 
強化学習その4
強化学習その4強化学習その4
強化学習その4nishio
 
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action DiffusionDeep Learning JP
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)Shota Imai
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
 
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from PixelsDeep Learning JP
 

What's hot (20)

【DL輪読会】Scaling laws for single-agent reinforcement learning
【DL輪読会】Scaling laws for single-agent reinforcement learning【DL輪読会】Scaling laws for single-agent reinforcement learning
【DL輪読会】Scaling laws for single-agent reinforcement learning
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
【DL輪読会】Mastering Diverse Domains through World Models
【DL輪読会】Mastering Diverse Domains through World Models【DL輪読会】Mastering Diverse Domains through World Models
【DL輪読会】Mastering Diverse Domains through World Models
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
 
文字列アルゴリズム
文字列アルゴリズム文字列アルゴリズム
文字列アルゴリズム
 
強化学習の実適用に向けた課題と工夫
強化学習の実適用に向けた課題と工夫強化学習の実適用に向けた課題と工夫
強化学習の実適用に向けた課題と工夫
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
 
【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly【DL輪読会】Factory: Fast Contact for Robotic Assembly
【DL輪読会】Factory: Fast Contact for Robotic Assembly
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels[DL輪読会]Learning Latent Dynamics for Planning from Pixels
[DL輪読会]Learning Latent Dynamics for Planning from Pixels
 

More from Yu(u)ki IWABUCHI

音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜Yu(u)ki IWABUCHI
 
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学Yu(u)ki IWABUCHI
 
フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜Yu(u)ki IWABUCHI
 
ワイソフ配列について
ワイソフ配列についてワイソフ配列について
ワイソフ配列についてYu(u)ki IWABUCHI
 
名のあるフラクタルたち
名のあるフラクタルたち名のあるフラクタルたち
名のあるフラクタルたちYu(u)ki IWABUCHI
 
自己紹介とパズル紹介
自己紹介とパズル紹介自己紹介とパズル紹介
自己紹介とパズル紹介Yu(u)ki IWABUCHI
 
かんたんベジェ曲線
かんたんベジェ曲線かんたんベジェ曲線
かんたんベジェ曲線Yu(u)ki IWABUCHI
 
Mathematicaで 機械学習してみた
Mathematicaで機械学習してみたMathematicaで機械学習してみた
Mathematicaで 機械学習してみたYu(u)ki IWABUCHI
 
加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考えるYu(u)ki IWABUCHI
 
グラフィックエンジニア必見!イージングの数学
グラフィックエンジニア必見!イージングの数学グラフィックエンジニア必見!イージングの数学
グラフィックエンジニア必見!イージングの数学Yu(u)ki IWABUCHI
 
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜Yu(u)ki IWABUCHI
 
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Yu(u)ki IWABUCHI
 
コンピュータで全く使われない数表現
コンピュータで全く使われない数表現コンピュータで全く使われない数表現
コンピュータで全く使われない数表現Yu(u)ki IWABUCHI
 

More from Yu(u)ki IWABUCHI (16)

音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
 
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学
 
フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜フラクタル音楽 〜可視化と可聴化の世界〜
フラクタル音楽 〜可視化と可聴化の世界〜
 
ラスタとベクタ
ラスタとベクタラスタとベクタ
ラスタとベクタ
 
ワイソフ配列について
ワイソフ配列についてワイソフ配列について
ワイソフ配列について
 
名のあるフラクタルたち
名のあるフラクタルたち名のあるフラクタルたち
名のあるフラクタルたち
 
自己紹介とパズル紹介
自己紹介とパズル紹介自己紹介とパズル紹介
自己紹介とパズル紹介
 
かんたんベジェ曲線
かんたんベジェ曲線かんたんベジェ曲線
かんたんベジェ曲線
 
Mathematicaで 機械学習してみた
Mathematicaで機械学習してみたMathematicaで機械学習してみた
Mathematicaで 機械学習してみた
 
加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える加法よりも低レベルな演算を考える
加法よりも低レベルな演算を考える
 
グラフィックエンジニア必見!イージングの数学
グラフィックエンジニア必見!イージングの数学グラフィックエンジニア必見!イージングの数学
グラフィックエンジニア必見!イージングの数学
 
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
 
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
 
コンピュータで全く使われない数表現
コンピュータで全く使われない数表現コンピュータで全く使われない数表現
コンピュータで全く使われない数表現
 
いただきます。
いただきます。いただきます。
いただきます。
 
フラクタル概説
フラクタル概説フラクタル概説
フラクタル概説
 

IFSを使ったフラクタルの描画