- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验7 MATLAB分形初探
实验七 分形初探 一、实验目的 了解有关分形的基本特性以及生成分形图形的基本方法,对分形几何这门学科有一个直观的了解。同时,掌握利用MATLAB软件进行分形图形生成的方法。 二、相关知识 早在19世纪末及20世纪初,一些科学家就构造出一些边界形状极不光滑的图形,这类图形的构造方法都有一个共同的特点,即最终图形F都是按照一定的规则R通过对初始图形F不断修改得到的,下面是几个最具代表性的分形图形及其生成方法。 例1:Koch曲线及其构造方法 给定一条线段F0,将该线段三等分,并将中间一段用以该线段为边的等边三角形的另外两边代替,得到图形F1;然后,再对图形F1中每一小段都按照上述方式修改,直至无穷,则最后得到的极限曲线 ,即所谓的Koch曲线。 F0 F1 F2 F3 F4 F5 生成程序Koch曲线的MATLAB程序如下: function koch(p,q,n) axis equal if (n==0) plot([p(1);q(1)], [p(2);q(2)], LineWidth,1,Color,red); hold on; else c = q-p; c = [-c(2); c(1)]; % 表示与c向量垂直的向量 c = (p+q)/2 + c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点坐标向量 c a = (2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点坐标向量 a b = (p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点坐标向量 b koch(p, a, n-1); % 对 pa 线段做下一回合 koch(a, c, n-1); % 对 ac 线段做下一回合 koch(c, b, n-1); % 对 cb 线段做下一回合 koch(b, q, n-1); % 对 bq 线段做下一回合 end 其中参数p与q是起点和终点的坐标,用列向量表示。 图7-1 向量[-c (2),c (1)]与向量c=[c(1),c(2)]垂直示意图 图7-2 顶点计算示意图 例2:Sierpinski三角形及其构造方法 这是分形的另一个典型例子。给定一个三角形S0(填成黑色),取各边的中点,连接起来构成一个相似三角形(填成白色),得到图形S1,现在,白色三角形的周围有三个小黑三角形,我们对这三个小黑三角形继续上面的操作以至无穷,最后得到的图形称为Sierpinski三角形。按照上述方法生成Sierpinski三角形的MATLAB函数如下,其中A,B,C表示Sierpinski三角形的三个顶点坐标,用列向量表示,level是使用生成方法的次数。 function sierpinski(A, B, C, level) % SIERPINSKI Recursively generated Sierpinski triangle. % sierpinski(PA, PB, PC, LVL) generates an approximation to % the Sierpinski triangle, where the 2-vectors PA, PB and PC % define the triangle vertices. % LVL is the level of recursion. if level == 0 % Fill the triangle with vertices A, B, C. fill ([A(1), B(1), C(1)], [A(2), B(2), C(2)], [0.0 0.0 0.0]); hold on else % Recursive calls for the three subtriangles sierpinski(A, (A + B)/2, (A + C)/2, level-1) sierpinski(B, (B + A)/2, (B + C)/2, l
文档评论(0)