Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
オイラーの公式で感じる
次元の呪い
- R を使って -
#2 「はじめてのパターン認識」読書会 LT3
02.JUL.2013
株式会社リクルートキャリア
グラントウキョウサウスタワー
@ manozo
前回 私を悩ませたグラフ
「はじめてのパターン認識」 p6
これは一体なんだ? 私には理解不能!
100 次元の超立方体は、毬栗やウニのようなトゲトゲしたような形をしている。
描いてみようと
ジーと眺めるも
描けない
オイラーの公式
今日の主役
eiφ
=cosφ+isinφ
eiπ
+1=0 (φ=π の時 )
私の妄想にお付き合い下さい。
虚数 i とくれば複素数
http://www.th.phys.titech.ac.jp/~muto/
物理数学第一
平成18年度 学部 3学期
■ 第1章  複素数
http://www.th.phys.titech.ac.jp/~muto/...
eiφ
= cosφ+isninφ
Eular の公式を用いると,複素数 z は
z = r(cos φ + i sin φ) = reiφ
と書くことができる。
....
複素数の表現 z = reiφ
において φ が 0 から 2π ま
...
#1 の復習
• 超立方体( p.5 )
– d 次元単位超立方体の中心から頂点までの距離
1/2*sqrt(d) → 半径 r
– d 次元超立方体の頂点の数
2d
→ φ
円を分割?するのに使う
d: 次元
Rで書いてみる
たった 7 行
z <- c(0+0i, NA) # 中心( 0+0i )を付置(ベクトル)
for(d in 1:16){ # とりあえず 16(4*4) 次元まで
phi <- seq(0, 2*pi, length=2^d...
plot する
plot(z, type="b", pch=".")
実際はこんな感じ。レイヤーを重ねる感じ。
> par(pty = "s") # プロット領域を正方形にする
> plot(z, type="b", pch=".")
> gr...
中心
点々が
頂点
複素平面に plot
3次元
頂点が8個
3次元の場合
• これをベシャッ
と2次元につぶ
した感じ。
• 頂点は8個
まとめ
• オイラーの公式で偏角φ と中心からの距離r
– z = r ・ eiφ
= r(cosφ + i ・ sinφ)
• 複素数はRで普通に plot できる
– exp. plot(0+0i) # 複素平面に plot される
• s...
Rのおまけ
library(rgl) # rgl ライブラリを使って 3D
plot3d(Re(z), Im(z), Mod(z))
d <- 1:100
plot3d(2*d, sqrt(d)/2, 2^d)
面 距離 頂点
x y r (絶...
Rのおまけ2
• log を取って気分だけでも
どうせなら 1000 次元まで
z <- 0+0i
for(d in 1:1000){
phi <- seq(0, 2*pi, length=as.integer(log10(2^d))+1)
f...
こんな感じ
• マウスで動かせる
• マウスのクリクリ
で拡大縮小できる
• 参考 rgl ライブラリ
http://cse.naro.affrc.go.jp/t
      謝謝
Upcoming SlideShare
Loading in …5
×

オイラーの公式で感じる次元の呪い

3,584 views

Published on

  • Be the first to comment

オイラーの公式で感じる次元の呪い

  1. 1. オイラーの公式で感じる 次元の呪い - R を使って - #2 「はじめてのパターン認識」読書会 LT3 02.JUL.2013 株式会社リクルートキャリア グラントウキョウサウスタワー @ manozo
  2. 2. 前回 私を悩ませたグラフ 「はじめてのパターン認識」 p6 これは一体なんだ? 私には理解不能! 100 次元の超立方体は、毬栗やウニのようなトゲトゲしたような形をしている。 描いてみようと ジーと眺めるも 描けない
  3. 3. オイラーの公式 今日の主役 eiφ =cosφ+isinφ eiπ +1=0 (φ=π の時 ) 私の妄想にお付き合い下さい。
  4. 4. 虚数 i とくれば複素数 http://www.th.phys.titech.ac.jp/~muto/ 物理数学第一 平成18年度 学部 3学期 ■ 第1章  複素数 http://www.th.phys.titech.ac.jp/~muto/lecture ...
  5. 5. eiφ = cosφ+isninφ Eular の公式を用いると,複素数 z は z = r(cos φ + i sin φ) = reiφ と書くことができる。 .... 複素数の表現 z = reiφ において φ が 0 から 2π ま で変化すれば、 z を表す点は半径 r の円周上 を一周する。 第1章 複素数 p3これを使ってできるかも!
  6. 6. #1 の復習 • 超立方体( p.5 ) – d 次元単位超立方体の中心から頂点までの距離 1/2*sqrt(d) → 半径 r – d 次元超立方体の頂点の数 2d → φ 円を分割?するのに使う d: 次元
  7. 7. Rで書いてみる たった 7 行 z <- c(0+0i, NA) # 中心( 0+0i )を付置(ベクトル) for(d in 1:16){ # とりあえず 16(4*4) 次元まで phi <- seq(0, 2*pi, length=2^d+1) # φ for(i in phi) z <- c(z, sqrt(d)/2*exp(1)^(1i*i)) z<-c(z, NA) # 区切る } z=r ・ eiφ 中心からの頂点までの距離 (r) sqrt(d)/2 頂点の数 2d 0 2π 頂点の数 +1 e 虚数 i×phi
  8. 8. plot する plot(z, type="b", pch=".") 実際はこんな感じ。レイヤーを重ねる感じ。 > par(pty = "s") # プロット領域を正方形にする > plot(z, type="b", pch=".") > grid() # グリッド > points(z, type="b", pch=".") # グリッドを上書き > points(0+0i, pch=20) # 0+0i だけをプロット 想像できましたね!
  9. 9. 中心 点々が 頂点 複素平面に plot 3次元 頂点が8個
  10. 10. 3次元の場合 • これをベシャッ と2次元につぶ した感じ。 • 頂点は8個
  11. 11. まとめ • オイラーの公式で偏角φ と中心からの距離r – z = r ・ eiφ = r(cosφ + i ・ sinφ) • 複素数はRで普通に plot できる – exp. plot(0+0i) # 複素平面に plot される • seq(0, 2*pi, length = ...) – 0 から2π をlength で等間隔に分割(頂点) • 100 次元までチャレンジしてください – 「次元の呪い」が体感できます。 – 但し頂点は1267650600228229401496703205376 個 100 次元超立方体は3次元空間では ツルツルじゃないのかなぁ~?    さてアンブレラは何次元?    (傘の骨は普通は8本)
  12. 12. Rのおまけ library(rgl) # rgl ライブラリを使って 3D plot3d(Re(z), Im(z), Mod(z)) d <- 1:100 plot3d(2*d, sqrt(d)/2, 2^d) 面 距離 頂点 x y r (絶対値)
  13. 13. Rのおまけ2 • log を取って気分だけでも どうせなら 1000 次元まで z <- 0+0i for(d in 1:1000){ phi <- seq(0, 2*pi, length=as.integer(log10(2^d))+1) for(i in phi) z <-c(z, sqrt(d)/2*exp(1)^(1i*i)) z <-c(z, NA) } library(rgl) # rgl ライブラリを使って 3D プロット plot3d(Re(z), Im(z), Mod(z),type="l",col=rainbow(1000)) 次のページに plot
  14. 14. こんな感じ • マウスで動かせる • マウスのクリクリ で拡大縮小できる • 参考 rgl ライブラリ http://cse.naro.affrc.go.jp/t       謝謝

×