« 困ったものです --- バグの混入 | トップページ | 『数学ガール』が面白い »

2009年4月 3日 (金)

数学ガール --- ωのワルツ

Omega1_5


遅ればせながら、昨日から『数学ガール』を読んでいます。

何となく買いそびれていたのですが、昨日、意を決して買ってみました。

いや〜おもしろい。しかも読みやすい。


ところでこの本の中に「ωのワルツ」という章がありますよね。

初項 C0 = 0, 公比 ω = ( -1 + √3 i ) / 2

の等比数列が、1, ω, ω² を繰り返すというやつです。

これが複素平面上で正三角形を形作るという話ですが、本当にそうなのか確かめたくて、 自作の「Turtle Graphics on Ruby/SDL」を使った、下記のようなスクリプトを作ってみました。

# # ωのワルツ # # from 『数学ガール』 # require 'turtle_graphics' require 'complex' class Turtle def move_to(x, y) dx = x.to_f - @x dy = y.to_f - @y case when (dx < 0) @angle = atan(dy / dx) / TO_RADIAN - 180 when (dx == 0) case when (dy < 0) @angle = 270 when (dy > 0) @angle = 90 end when (dx > 0) @angle = atan(dy / dx) / TO_RADIAN end len = sqrt(dx * dx + dy * dy) forward(len) end self end s = Screen.create s.set_zoom(160).grid_on s.set_speed(4) s.draw_circle(0, 0, 1, Blue) t = Turtle.new(1, 0) # Turtle.verbose_on t.set_color(Yellow) omega = Complex.new(-0.5, 0.5 * sqrt(3)) c = 1 loop do c = c * omega x = c.real y = c.image t.move_to(x, y) end s.main_loop

これは、横軸を実数軸、縦軸を虚数軸に見立てた複素平面で、ωの作る等比数列の示す点を 亀がたどって行くものです。青い円は複素平面の単位円です。

単に正三角形を描いているように見えますが、内部では虚数の計算をしながら、実際にωつくる 等比数列の項を順々に求めています。

こうして実際に亀が動く軌跡を見てみると、ちょっとした感動があります。


ちなみに

omega = Complex.new(0, 1)

とすると、『数学ガール』のp44の正方形上の移動を再現できます。

« 困ったものです --- バグの混入 | トップページ | 『数学ガール』が面白い »

Ruby」カテゴリの記事

Turtle Graphics on Ruby/SDL」カテゴリの記事

数学ガール」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112020/44554987

この記事へのトラックバック一覧です: 数学ガール --- ωのワルツ:

« 困ったものです --- バグの混入 | トップページ | 『数学ガール』が面白い »

2016年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
フォト

最近のトラックバック

無料ブログはココログ