混沌的藝術--- YChaos通過數學公式生成混沌圖像


      藝術真得很難嗎?也許如同編程一樣容易。我寫了一套軟件,其功能是通過輸入數學方程式,生成藝術圖像。一提到數學有人可能會發怵,這里請不要擔心,生成混沌的數學公式大都很是簡單,基本上只用加、減、乘、除、余、正弦、余弦這七種運算。說到數學,在我心里也留有一大片陰影,別問我陰影面積有多大,因為我算不出來。依然記得當年的數學考試,每次其最后一道BOSS題,我是從來沒有做出來過。再說高等數學的微積分,十年前我學得還算可以,但應付完考試就被廢了。而現在文檔論文上的公式大多都要整幾個微積分來提高逼格,我一看到就怵。幾年前參加一個面試,問我如何求橢球面上任意兩點的距離,我就說你在橢球上給這兩點穿個洞,兩點的距離就是其直線距離。前些日子我讀小說三體,於是也研究了下三體,並寫了兩個關於三體和N體的小程序。只是我寫的程序其精確性是不夠的,因為沒有使用微積分。本來打算重學下高數,並專門從故紙堆里翻出了當年大學時的高數課本,結果到現在也沒翻過幾頁。

      好吧有些跑題了,再拉回來談混沌。什么是混沌?數學上的混沌和庄子所說的混沌,雖有相似之處但不是一個東西。我的理解是:混沌就是不確定性。你可能知道混沌公式生成值的一個范圍,但難以得知其具體為何值。如何實現這種不確定,有兩種辦法,一個是隨機,另一個是迭代。

      先講隨機,我曾思考過一個問題:世上有真正的隨機嗎?我的結論是:莫須有。我對隨機的理解是:無法明確計算,它是確定的反義。先說計算機中的隨機數rand(),大家都知道這實際上是偽隨機數。只有隨機數種子不變,其生成的隨機數就是固定的。有個關於隨機的實驗叫沙丘實驗,它是從密封空間中的一點向下滴沙粒,其結論是無法得知哪一個沙粒落下后會造成沙丘的崩塌。並有人說沙粒間的碰撞計算量是隨沙粒數目呈指數增長的。但計算量大並不代表能造成隨機,也許哪天技術一進度,這就能計算出了呢。再說,用數學的推演法看,兩個沙粒的碰撞計算是確定的,那么3個沙粒的碰撞計算也是確定的,從而N個沙粒的碰撞計算亦是確定的。比沙粒更微觀的實驗是布朗運動,它是粒子在液體中隨機的運動,但這粒子的運動依然是與其受力有關,所以理論上也是可計算的。再微觀到雪花的生成,空氣中的一堆水分子,如何組成雪花。雪花本身就是一個隨機的東西,據說兩片雪花完全相同的概率是一個天文數字分之一,我不知道如果兩片雪花生成時所有的參數都一致,其形態是否完全相同。最后微觀到原子及量子物理,原子核中電子在質子周圍出現,沒有明確的軌跡,似乎是隨機。可目前不知道其軌跡規律,不代表它沒有。倒是數學上每一個無理數其后面出現的數字應該是隨機的。

      再講迭代。迭代的意思是自己的輸出再做為自己的輸入。記得第一次知道迭代是在大學時上的一門課,課名似乎叫工業控制。我連課名都記不清了,可見對這課講的什么知識已經全忘了。但是對迭代卻很有印象,自己的輸出再做為自己的輸入,這在當時的我看來這有違倫禮,有背道德啊。這不如同自己產的米田共自己再吃了嗎,毀三觀啊,有木有!另一個讓我覺得毀三觀的是:遞歸,自己調用自己Abnormal。后來,經歷了歲月的洗禮后,對迭代和遞歸也就習以為常了,在這個YChaos軟件中,混沌的生成就是用的迭代,而數學表達式的解析算法用得則是遞歸。通常我們用的數學公式是線性的,而有了迭代則出現了非線性數學。如函數x=sin(t+1.0)這是線性的函數,只要給定t值,x值就可以明確得到。而函數x=sin(x+1.0)則是非線性的,因為將這個函數迭代執行若干次后,如果不一步一步地計算,鬼才知道是什么結果。

      最后說下藝術,我認為只要覺得好看就是藝術。這算是比較輕松的,我搞混沌算法就是為了生成些漂亮的圖像。我不關心洛倫茨的蝴蝶線圈怎么就和天氣有了關系,也不想了解為什么邏輯斯蒂映射圖和生育繁殖有毛關系,我只生成藝術圖像。

混沌圖像:

01洛倫茨吸引子

02陳氏吸引子

03呂陳吸引子

04蔡氏電路

05拉比諾維奇-法布里康特方程

06非線性電路電容中的混沌控制系統

07杜芬方程

08若斯叻吸引子

09二維離散電路混沌系統

10三體

 

11玫瑰線

 

12圓內旋輪線

 

13圓外旋輪線

 

14三翅鷹

 

15國王映射

 

16馬丁迭代

 

17SinAddCos

 

18SinMulCos

 

19SinSubCos

 

20隨機

 

21謝爾賓斯基

 

22邏輯斯蒂映射

 

23曼德勃羅映射

 

24正弦映射

 

25標准映射

 

26標准方程

 

27埃農映射

 

28德容吸引子

 

29Julia

 

30五星

 

這里先提供個YChaos軟件下載地址和基本使用操作。詳細的使用手冊容我以后再寫。

軟件下載地址:http://files.cnblogs.com/files/WhyEngine/YChaos.zip

    雙擊"YChaos圖像生成軟件.exe"啟動軟件.

    軟件有兩種模式:編輯模式與圖像生成模式。默認打開時為編輯模式,鍵盤F1用於兩種模式的切換。鍵盤F2用於切換到圖像生成模式,並進行圖像生成處理。鼠標右鍵拖動用於設置視口位置,滾輪用於視口的縮放。按下鍵盤F,會自動設置成最佳視口。按下鍵盤X則設置成默認大小的視口,這可使圖像處於其原始大小顯示。

    文件夾"images"中存放各種生成圖像的配置文件。鼠標將某一配置文件拖入到軟件中,即可打開文件。也可以通過菜單項中的文件->打開配置文件...來進行文件選擇打開。亦可以使用快捷鍵CTRL+F來加載配置文件

    打開某個配置文件后,會切換入編輯模式。按下F2會切換到圖像生成模式並生成混沌圖像。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM