朱利亞集合

朱利亞集合是一個在複平面上形成分形的點的集合。以法國數學家加斯頓·朱利亞(Gaston Julia)的名字命名。

基本介紹

  • 中文名:朱利亞集合
  • 外文名:Julia set
簡介,定義,示例,c++語言代碼,

簡介

朱利亞集合(又譯為茹利亞集合,英語:Julia set)是一個在複平面上形成分形的點的集合。以法國數學家加斯頓·朱利亞(Gaston Julia)的名字命名。

定義

朱利亞集合可以由下式進行反覆疊代得到:
.
對於固定的複數c,取某一z值(如z = z0),可以得到序列
這一序列可能反散於無窮大或始終處於某一範圍之內並收斂於某一值。我們將使其不擴散的z值的集合稱為朱利亞集合

示例

下面各圖顯示了c取不同值時所得到的不同的朱利亞集合在複平面上的圖像:
圖1.示例圖圖1.示例圖

c++語言代碼

#include <graphics.h>#include <conio.h>#include <time.h>// 視窗大小#define WINDOWS_WIDTH 640#define WINDOWS_HEIGHT 480// 定義複數struct COMPLEX{double re;double im;};// 定義複數“乘”運算COMPLEX operator * (COMPLEX a, COMPLEX b){COMPLEX c;c.re = a.re * b.re - a.im * b.im;c.im = a.im * b.re + a.re * b.im;return c;}// 定義複數“加”運算COMPLEX operator + (COMPLEX a, COMPLEX b){COMPLEX c;c.re = a.re + b.re;c.im = a.im + b.im;return c;}int main(){float re[]={-0.75,0.45,0.285,-0.8,-0.835,-0.70176};float im[]={0,-0.1428,0.01,0,0.156,-0.2321,-0.3842};// 設定視窗大小initgraph(WINDOWS_WIDTH,WINDOWS_HEIGHT);// 繪製Julia SetCOMPLEX z,c;// 設定疊代初值c.re = -0.75,c.im = 0;int i,j,k;for(i=0;i<WINDOWS_WIDTH;i++){for(j=0;j<WINDOWS_HEIGHT;j++){z.re = -1.6 + 3.2 * (i/(float)WINDOWS_WIDTH);z.im = -1.2 + 2.4 * (j/(float)WINDOWS_HEIGHT);for(k=0;k<180;k++){if(z.re * z.re + z.im * z.im > 4.0){break;}z = z*z + c;putpixel(i,j,(k>=180)?0:HSLtoRGB((float)((k<<5)%360),1.0,0.5));}}}// 按任意鍵退出getch();closegraph();return 0;}

相關詞條

熱門詞條

聯絡我們