蝙蝠俠標誌的數學公式


大部分的人,應該都知道《蝙蝠俠》(維基百科)這個虛構的腳色的?基本上,「蝙蝠俠」這個虛構的英雄人物,在故事中是一個「高登市」的大富豪「布魯斯·韋恩」,他為了打擊犯罪,所以就透過自己的金錢、技術力,把自己打造成一個沒有特殊能力的匿名英雄。

在故事裡,一個比較有趣的就是蝙蝠俠有留下一盞有他蝙蝠標誌的探照燈,只要在有需要的時候,把這燈打到雲上,蝙蝠俠看到後,就會出現了!

不過,這些都不是很重要啦~ XD

這篇的重點是,國外有蝙蝠俠的狂熱分子,居然把蝙蝠俠的標誌,導出成一個超複雜的數學等式了!而他的成果,就是右邊這張圖了~

Heresy 是在《Batman logo in equation form》這篇文章看到的,不過他的原始出處應該是《Do you like Batman? Do you like math? My math teacher is REALLY cool.》這串討論;而由於這東西真的滿有趣的,所以也引起了相當熱烈的討論。

Heresy 自己看了也覺得相當有趣,也相來試試看他的式子到底是不是真的?不過由於 Heresy 手邊沒有 MathematicaMaple 這類的專業數學軟體,所以一時之間也不知道到底該怎樣去驗證他…想了想後,最後是決定用微軟的 Word 2010 的新版方程式編輯器(介紹),加上之前也介紹過的「Microsoft Mathematics Add-In」來試試看了!而成果呢,就是下面的圖了。(有興趣的人,這檔案在 SkyDrive 上)

可以發現…恩,大致上都對啦,不過不知道為什麼,左右兩邊的翅膀怎樣就是出不來… orz

公式的部分,Heresy 是花了好一陣子才打完的,而打完後發現不對,也研究了好一陣子,不過應該沒打錯才對。但是為什麼就是沒辦法全畫出來了?這就不清楚了…如果有人能修好,麻煩告訴 Heresy 一下啊~畢竟這個式子實在太複雜了,Heresy 也沒那個精力去推導出來,到底哪部分是哪個算出的啊!不過目前猜測,或許是因為還有用到複數域的關係吧?這也讓 Heresy 真的很佩服導出這個式子的人,不知道他到底是怎麼推出來的?


而除了這個數學式子外,討論串中,也有不少人都提出對應的「實作」了。 :p

Heresy 在這邊就把有看到的也列一下,有興趣、也有對應軟體的人,或許可以考慮玩看看;不過由於 Heresy 自己沒軟體,所以也沒驗證過,所以是不是真的能用也就不知道了。

Mathematica 版

((x/7)2 Sqrt[Abs[Abs[x] - 3]/(Abs[x] - 3)] + (y/3)2 Sqrt[Abs[y + (3 Sqrt[33])/7]/(y + (3 Sqrt[33])/7)] - 1) (Abs[x/2] - ((3 Sqrt[33] - 7)/112) x2 - 3 + Sqrt[1 - (Abs[Abs[x] - 2] - 1)2 ] - y) (9 Sqrt[Abs[(Abs[x] - 1) (Abs[x] - 3/4)]/((1 - Abs[x]) (Abs[x] - 3/4))] - 8 Abs[x] - y) (3 Abs[x] + .75 Sqrt[Abs[(Abs[x] - 3/4) (Abs[x] - 1/2)]/((3/4 - Abs[x]) (Abs[x] - 1/2))] - y) (9/4 Sqrt[Abs[(x - 1/2) (x + 1/2)]/((1/2 - x) (1/2 + x))] - y) ((6 Sqrt[10])/7 + (3/2 - Abs[x]/2) Sqrt[Abs[Abs[x] - 1]/(Abs[x] - 1)] - (6 Sqrt[10])/14 Sqrt[4 - (Abs[x] - 1)2 ] - y) == 0

Maple 版

batman:=((x/7)^2*sqrt(abs(abs(x) - 3)/(abs(x) - 3)) +
(y/3)^2*sqrt(abs(y + (3*sqrt(33))/7)/(y + (3*sqrt(33))/7)) - 1)
*(abs(x/2) - ((3*sqrt(33) - 7)/112)*x^2 - 3 +
sqrt(1 - (abs(abs(x) - 2) - 1)^2 ) - y)*(9*sqrt(abs((abs(x) - 1)
*(abs(x) - 3/4))/((1 - abs(x))*(abs(x) - 3/4))) - 8*abs(x) - y)
*(3*abs(x) + 3/4*sqrt(abs((abs(x) - 3/4)*(abs(x) - 1/2))
/((3/4 - abs(x))*(abs(x) - 1/2))) - y)*(9/4*sqrt(abs((x - 1/2)
*(x + 1/2))/((1/2 - x)*(1/2 + x))) - y)*((6*sqrt(10))/7
+ (3/2 - abs(x)/2)*sqrt(abs(abs(x) - 1)/(abs(x) - 1))
- (6*sqrt(10))/14*sqrt(4 - (abs(x) - 1)^2 ) - y);

plots:-implicitplot(batman, x=-7..7, y=-3..3, factor=true,
             scaling=constrained, grid=[100,100], gridrefine=4);
Python 程式碼
from __future__ import division  # this is important, otherwise 1/2 will be 0
import matplotlib.pyplot
from numpy import arange
from numpy import meshgrid
from numpy import sqrt
from numpy import real

delta = 0.01
xrange = arange(-7.0, 7.0, delta)
yrange = arange(-3.0, 3.0, delta)
x, y = meshgrid(xrange,yrange)

F1 = (((x/7) ** 2) * sqrt(abs(abs(x) - 3)/(abs(x) - 3)) + ((y / 3) ** 2) * sqrt(abs(y + (3 * sqrt(33)) / 7)/(y + (3 * sqrt(33)) / 7)) - 1)
F2 = (abs(x/2) - ((3 * sqrt(33) - 7)/112) * x**2 - 3 + sqrt(1 - (abs(abs(x) - 2) - 1) ** 2 ) - y)
F3 = (9 * sqrt(abs((abs(x) - 1) * (abs(x) - 3/4))/((1 - abs(x)) * (abs(x) - 3/4))) - 8 * abs(x) - y)
F4 = (3 * abs(x) + 0.75 * sqrt(abs((abs(x) - 3/4) * (abs(x) - 1/2))/((3/4 - abs(x)) * (abs(x) - 1/2))) - y)
F5 = ((9/4) * sqrt(abs((x - 1/2) * (x + 1/2))/((1/2 - x) * (1/2 + x))) - y)
F6 = ((6 * sqrt(10)) / 7 + (3/2 - abs(x)/2) * sqrt(abs(abs(x) - 1)/(abs(x) - 1)) - ((6 * sqrt(10))/ 14) * sqrt(4 - (abs(x) - 1) ** 2 ) - y)

for f in [F1,F2,F3,F4,F5,F6]:
    matplotlib.pyplot.contour(x, y, f, [0])
matplotlib.pyplot.show()

最後,惡搞圖一張 XD

不知道蝙蝠俠看到會不會出勤呢? XD

對「蝙蝠俠標誌的數學公式」的想法

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.