數學應用之分形課件_第1頁
數學應用之分形課件_第2頁
數學應用之分形課件_第3頁
數學應用之分形課件_第4頁
數學應用之分形課件_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

4.6.1由生成元生成的分形圖形cantor三分集

生成方法:選取一條直線段F0,將該線段三等分,去掉中間一段,剩下兩段。將剩下的兩段分別再三等分,各去掉中間的一段,剩下四段。繼續這樣的操作,直至無窮,則可得到一個離散的點集,稱為cantor三分集。

程序略。由生成元產生的分形是一種規則分形,是數學家按照一定規則構造出來的,相當于物理學種的模型。構造特點:最終圖形是按照一定規則R對初始F0不斷修改得到的。

2023/6/70黃建華制作4.6.1由生成元生成的分形圖形koch曲線

生成方法:選取一條直線段F0,將該線段三等分,并將中間一段用以該線段為邊的等邊三角形的另外兩條邊代替,得到圖形F1。再將F1的每一段都按上述方法修改,直至無窮,則最后得到的極限曲線,稱為koch曲線。

2023/6/71黃建華制作4.6.1由生成元生成的分形圖形程序:clear;clf;new=[0,1];%定義初始線段的兩端kmax=20;%迭代次數fork=1:kmaxold=new;%保存原有各點的坐標

n=length(old)-1;%計算需要改變圖形的線段數目

form=0:n-1%計算各新線段兩端點的坐標(5點)diff=(old(m+2)-old(m+1))/3;%取新線段長度向量new(4*m+1)=old(m+1);%新線段第一點坐標new(4*m+2)=old(m+1)+diff;%新線段第二點坐標new(4*m+3)=new(4*m+2)+diff*((1+sqrt(3)*i)/2);%第三點new(4*m+4)=old(m+1)+2*diff;%第四點endnew(4*n+1)=old(n+1);%最后一點plot(new);axisequal;end2023/6/72黃建華制作4.6.1由生成元生成的分形圖形2023/6/73黃建華制作4.6.1由生成元生成的分形圖形分形樹生成方法:選取一條直線段F0,將該線段三等分,在等分點上各畫一條長度為原線段長度三分之一的線段,并與原線段成固定夾角,得到圖形F1。再將F1的每一段都按上述方法修改,直至無窮,則最后得到的極限圖象,稱為分形樹。

abcdeo2023/6/74黃建華制作4.6.1由生成元生成的分形圖形程序:clear;clf;th=pi/6;%設置角度u=[0,0;0,1];%初始線段坐標

rov1=[cos(th),-sin(th);sin(th),cos(th)];rov2=rov1';%坐標變換矩陣kmax=15;%循環次數fork=1:kmaxuuu=[];%建立一空數組,保存點坐標

n=length(u)/2;%計算需要改變圖形的線段數目

form=0:n-1%計算各新端點的坐標

p1=(u(2*m+1,:)*2+u(2*m+2,:))/3;%a點

p2=(u(2*m+1,:)+u(2*m+2,:)*2)/3;%b點pp=[(u(2*m+2,1)-u(2*m+1,1));(u(2*m+2,2)-u(2*m+1,2))]/3;%計算新線段向量2023/6/75黃建華制作4.6.1由生成元生成的分形圖形lp=rov1*pp;%第一條樹枝偏轉向量lp=p1+lp';%第一條樹枝端點C坐標rp=rov2*pp;%第二條樹枝偏轉向量rp=p2+rp';%第二條樹枝端點D坐標uu=[u(2*m+1,:);p1;p1;lp;p1;p2;p2;rp;p2;u(2*m+2,:)];%按順序排列新線段兩端點的坐標uuu=[uuu;uu];endu=[uuu];plot(u(:,1),u(:,2));axis([-0.5,0.5,0,1]);end2023/6/76黃建華制作4.6.1由生成元生成的分形圖形2023/6/77黃建華制作4.6.2由迭代函數系生成的分形圖形以及相應的一組概率:p1,p2,...,pn(p1+p2+...+pn=1,pi>0)。對于任意選取的初始值z0=(x0,y0),以概率pi選取變換wi做迭代:

zk+1=(xk+1,yk+1)=wi(xk,yk),k=0,1,2,...

則點列{zk}收斂的極限圖形稱為一個IFS吸引子,即分形。利用IFS迭代可以生成美麗的分形,而且IFS迭代的程序具有通用性,要想得到不同的分形只需改變變換種的系數和概率值。由迭代函數系(IFS)產生分形的一般算法是:給定平面上的一組仿射變換wi:

2023/6/78黃建華制作4.6.2由迭代函數系生成的分形圖形步驟:(1)設定迭代的可視區域為:V={(x,y)|xmin≤x≤xmax,ymin≤y≤ymax}再按分辨率的大小V分成a*b的網格,網格點為(xi,yi),其中:xi=xmin+(xmax-xmin)*i/a,i=0,1,2,...,ayi=ymin+(ymax-ymin)*i/b,i=0,1,2,...,b設迭代N次;(2)設定初始點(x0,y0),不妨取(0,0);(3)在數列{1,2,...,n}中,以概率pi選取變換wi;(4)將變換作用到點(xk,yk)上,得到新點(xk+1,yk+1);(5)畫出點(xk,yk),直到循環結束。2023/6/79黃建華制作4.6.2由迭代函數系生成的分形圖形barnsley羊齒葉

wabcdefp10000.16000.0120.850.04-0.040.8501.60.8530.2-0.260.230.2201.60.074-0.150.280.260.4400.440.07程序:clear;clf;n=100000;%設置迭代次數v=rand(n,1);%隨機數用于每一步做概率系數x0=0;y0=0;x=[x0;zeros(n-1,1)];y=[y0;zeros(n-1,1)];%可視區域點數fori=2:n%按規則計算下一點坐標2023/6/710黃建華制作4.6.2由迭代函數系生成的分形圖形vv=v(i);%取概率ifvv<0.01%概率p=0.01y(i)=0.16*y(i-1);elseifvv<0.86%概率p=0.85x(i)=0.85*x(i-1)+0.04*y(i-1);y(i)=1.6-0.04*x(i-1)+0.85*y(i-1);elseifvv<0.93%概率p=0.07x(i)=0.2*x(i-1)-0.26*y(i-1);y(i)=1.6+0.23*x(i-1)+0.22*y(i-1);elsex(i)=-0.15*x(i-1)+0.28*y(i-1);y(i)=0.26*x(i-1)+0.24*y(i-1)+0.44;end2023/6/711黃建華制作4.6.2由迭代函數系生成的分形圖形endplot(x(1:n),y(1:n),'.r','markersize',1);axisoff

2023/6/712黃建華制作4.6.2由迭代函數系生成的分形圖形sierpinski墊

wabcdefp10.5000.5000.33320.5000.50.250.4330.33330.5000.50.500.333程序:clear;clf;n=100000;%設置迭代次數v=rand(n,1);%隨機數用于每一步做概率系數x0=0;y0=0;x=[x0;zeros(n-1,1)];y=[y0;zeros(n-1,1)];%可視區域點數fori=2:n%按規則計算下一點坐標2023/6/713黃建華制作4.6.2由迭代函數系生成的分形圖形vv=v(i);%取概率ifvv<0.333%概率p=0.333x(i)=0.5*x(i-1);y(i)=0.5*y(i-1);elseifvv<0.666%概率p=0.333x(i)=0.5*x(i-1)+0.25;y(i)=0.433+0.5*y(i-1);elsex(i)=0.5*x(i-1)+0.5;y(i)=0.5*y(i-1);endendplot(x(1:n),y(1:n),'.b','markersize',1);axisoff2023/6/714黃建華制作4.6.2由迭代函數系生成的分形圖形2023/6/715黃建華制作4.6.2由迭代函數系生成的分形圖形分形樹wabcdefp10000.5000.0520.42-0.420.420.4200.20.430.420.42-0.420.4200.20.440.1000.100.20.15程序:clear;clf;n=100000;%設置迭代次數v=rand(n,1);%隨機數用于每一步做概率系數x0=0;y0=0;x=[x0;zeros(n-1,1)];y=[y0;zeros(n-1,1)];%可視區域點數fori=2:n%按規則計算下一點坐標2023/6/716黃建華制作4.6.2由迭代函數系生成的分形圖形vv=v(i);%取概率ifvv<0.05%概率p=0.05y(i)=0.5*y(i-1);elseifvv<0.45%概率p=0.4x(i)=0.42*x(i-1)-0.42*y(i-1);y(i)=0.2+0.42*(x(i-1)+y(i-1));elseifvv<0.85x(i)=0.42*(x(i-1)+y(i-1));y(i)=0.42*(y(i-1)-x(i-1))+0.2;elsex(i)=0.1*x(i-1);y(i)=0.2+0.1*y(i-1);end2023/6/717黃建華制作4.6.2由迭代函數系生成的分形圖形endplot(x(1:n),y(1:n),'.m','markersize',1);axisoff

2023/6/718黃建華制作4.6.2由迭代函數系生成的分形圖形levy曲線wabcdefp10.5-0.50.50.5000.520.50.5-0.50.50.50.50.5程序:clear;clf;n=100000;%設置迭代次數v=rand(n,1);%隨機數用于每一步做概率系數x0=0;y0=0;x=[x0;zeros(n-1,1)];y=[y0;zeros(n-1,1)];%可視區域點數fori=2:n%按規則計算下一點坐標2023/6/719黃建華制作4.6.2由迭代函數系生成的分形圖形vv=v(i);%取概率ifvv<0.5%概率p=0.5x(i)=0.5*(x(i-1)-y(i-1));y(i)=0.5*(x(i-1)+y(i-1));elsex(i)=0.5*(x(i-1)+y(i-1))+0.5;y(i)=-0.5*(x(i-1)-y(i-1))+0.5;endendplot(x(1:n),y(1:n),'.m','markersize',1);axisoff2023/6/720黃建華制作4.6.2由迭代函數系生成的分形圖形2023/6/721黃建華制作給定一個初始復數z0,由迭代:

zk+1=zk2+c,k=0,1,2,...其中zk為復數,c為復常數對于給定的初始復數z0,迭代序列{zk}可能有界,也可能發散到無窮。使得序列{zk}有界的所有初值z0的集合J稱為復平面上的julia集。對于不同的參數c,julia集的形狀會有不同。

若固定初值z0,則對于不同的參數c,迭代序列{zk}可能有界,也可能發散到無窮。使得序列{zk}有界的所有參數c的集合M稱為復平面上的mandelbrot集。對于不同的參數z0,mandelbrot集的形狀也會有不同。

4.6.3由復變函數迭代生成的分形圖形2023/6/722黃建華制作為了便于繪圖,令zk=xk+iyk,c=p+iq,則:

xk+1=xk2-yk2+p,yk+1=2xkyk+q記:rk+1=sqrt(xk2+yk2)則序列{zk}有界相當于序列{rk}有界,可用一個上界值M來判斷是否有界。

julia集繪制步驟:(1)選定p,q,最大迭代次數kmax,上界M,顯示分辨率(xmax,ymax)迭代區域[xmin,xmax;ymin,ymax],步長hx=(xmax-xmin)/xmax,hy=(ymax-ymin)/ymax,進行循環4.6.3由復變函數迭代生成的分形圖形2023/6/723黃建華制作(2)建立初值與計算機屏幕上點的對應關系:x0=xmin+ihx,y0=ymin+ihy,k=0(3)計算:

x1=x02-y02+p,y1=2x0y0+q;k=k+1,r=sqrt(x12+y12)(4)判斷:若r>M,表明點(x0,y0)產生的序列無界,用白色顯示點并轉向步驟(2);若k=kmax,表明點(x0,y0)產生的序列有界,用黑色顯示點并轉向步驟(2);若r≤M且k≤kmax,則繼續迭代;4.6.3由復變函數迭代生成的分形圖形2023/6/724黃建華制作mandelbrot集程序:clear;clf;x=linspace(-1.5,1.5,300);y=linspace(-2.25,0.75,300);%設置顯示范圍[X,Y]=meshgrid(x,y);%設置像素點的坐標n=100;c=X+i*Y;Z=X+i*Y;fork=1:n%迭代過程Z=Z.^2+c;endW=abs(Z);pcolor(X,Y,W);%繪制當前顏色矩陣W的偽彩色圖shadingflat;%畫出二維曲面W的陰影,axis('square');colormapprism(256)%創建顏色矩陣,并返回顏色值gtext('mandelbrot圖')4.6.3由復變函數迭代生成的分形圖形2023/6/725黃建華制作4.6.3由復變函數迭代生成的分形圖形2023/6/726黃建華制作mandelbrot集程序修改:clear;clf;x=linspace(-2,0.5,300);y=linspace(-1.25,1.25,300);%設置顯示范圍[X,Y]=meshgrid(x,y);%設置像素點的坐標n=200;c=X+i*Y;Z=0;W=zeros(size(X));fork=1:n%迭代過程Z=Z.^2+c;i0=find(abs(Z)>2);W(i0)=k;Z(i0)=nan;endi0=find(W==0);W(i0)=nan;pcolor(X,Y,W);shadingflat;axis('square');colormapprism(256)gtext('mandelbrot圖')4.6.3由復變函數迭代生成的分形圖形2023/6/727黃建華制作4.6.3由復變函數迭代生成的分形圖形龜圖2023/6/728黃建華制作mandelbrot集程序再修改:clear;clf;x=linspace(-0.74547,-0.74538,300);y=linspace(0.11298,0.11304,300);%設置顯示范圍[X,Y]=meshgrid(x,y);%設置像素點的坐標n=200;c=X+i*Y;Z=0;W=zeros(size(X));fork=1:n%迭代過程Z=Z.^2+c;i0=find(abs(Z)>2);W(i0)=k;Z(i0)=nan;endi0=find(W==0);W(i0)=nan;pcolor(X,Y,W);shadingfl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論