《最強大腦》節目基於分形理論創造出的數學項目:「分形之美」,複雜的理論、函數方程以及海量圖形的組合讓現場嘉賓很是崩潰。陶晶瑩坦誠表示:「這是我四季以來唯一弄不懂的項目。」劉國梁也是一臉懵圈的表情:「我覺得數學家們啊,就像天外飛仙,跟我們是兩個世界的,Dr.魏解釋了我也聽不懂!」章子怡更是直言:「我覺得《最強大腦》應該更名為『最強燒腦』了。」許多網友感嘆:「比賽規則完全看不懂。」
Dr.魏表示,作為當今十分風靡的新理論、新學科,分形理論是用分形分維的數學工具來描述研究客觀事物。它跳出了一維的線、二維的面、三維的立體乃至四維時空的傳統藩籬,更加符合客觀事物的多樣性與複雜性。很多藝術家都是用分形這個數學原理來創作,節目中那些漂亮的圖案都是用分形公式做出來的。分形裡面常常研究的是朱利亞集合和曼德博集合。
朱利亞集合(又譯為茹利亞集合,英文:Juliaset)是一個在複平面上形成分形的點的集合。以法國數學家加斯頓·朱利亞(Gaston Julia)的名字命名。朱利亞集合可以由fc(z)=z2+c進行反覆迭代得到,其中,c=a+bi,看多少步會發散,這個發散值被定義為zmax,然後將複平面上所有點迭代到發散的步數用雲圖方式畫出來,就是Julia Set圖像了。所以寫一個iterate函數,就是對於輸入z0,按照公式迭代,返回迭代到發散的步數。這裡生成網格點用了numpy的meshgrid(),繪製雲圖用到了matplotlib的imshow()函數。對於c=0.285+0.01i得到的Juliaset集合圖像如下面左圖所示:
曼德博集合:如果要繪製曼德博集合(Mandelbrotset)。方法與Julia Set基本一致,不同的是迭代發生了變化,變成了:fc(z)=z2+c。因此只要修改iterate函數,就可以畫出曼德博集合了,對於c=0.285+0.01i得到的Mandelbrotset集合圖像如上面右圖所示。
(1)請你使用python編程,運行得到上面左圖的Julia set圖像,其中c=0.285+0.01i。
(2)請你使用python編程,運行得到上面右圖的Mandelbrot set集圖像,其中c=0.285+0.01i。
(3)《最強大腦》選手餘彬晶在第一題中回答的答案是c = 0.501 + 0.179i,而正確答案是c = 0.503 +0.181i,在容錯範圍0.002內,請你運行上述程序,分別畫出這兩種情況下的Juliaset圖像和Mandelbrot set集合圖像,並進行比較,只有畫出下面結果,程序才算正確。
(4)《最強大腦》選手餘彬晶在第二題中回答的答案是c = 0.429 + 0.019i,而正確答案是c = 0.430 + 0.016i,不在容錯範圍0.002內,請你運行上述程序,分別畫出這兩種情況下的Julia set圖像和Mandelbrot set集合圖像,並進行比較,只有畫出下面結果,程序才算正確。
(5)《最強大腦》選手餘彬晶在第三題中回答的答案是c = -1.160 + 0.203i,而正確答案是c = -1.162 + 0.204i,在容錯範圍0.002內,請你運行上述程序,分別畫出這兩種情況下的Julia set圖像和Mandelbrot set集合圖像,並進行比較,只有畫出下面結果,程序才算正確。
你可以用Python編程攻克「分形之美」嗎?
本題目是《Python基礎入門到數據挖掘實戰》課程的期末考試試卷之一,老師會對題目進行詳細的講解和說明,想了解課程內容請報名如下課程。
添加助教老師微信諮詢課程