朱利亚集合

朱利亚集合【朱利亚集合】朱利亚集合是一个在複平面上形成分形的点的集合 。以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名 。
基本介绍中文名:朱利亚集合
外文名:Julia set
简介朱利亚集合(又译为茹利亚集合,英语:Julia set)是一个在複平面上形成分形的点的集合 。以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名 。定义朱利亚集合可以由下式进行反覆叠代得到:

朱利亚集合

文章插图
.对于固定的複数c,取某一z值(如z = z0),可以得到序列
朱利亚集合

文章插图
这一序列可能反散于无穷大或始终处于某一範围之内并收敛于某一值 。我们将使其不扩散的z值的集合称为朱利亚集合 。示例下面各图显示了c取不同值时所得到的不同的朱利亚集合在複平面上的图像:
朱利亚集合

文章插图
图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;}