实验五 迭代与分形

合集下载

迭代与分形

迭代与分形

实验名称:迭代与分形专业:信息工程班级:09级四班姓名:序号:29,38提交日期:2011年4月29日一、实验目的与要求1.认识Fibonacci数列,体验发现其通项公式的过程;2.了解matlab软件中进行数据显示与数据拟合的方式;3.掌握matlab软件中plot, polyfit等函数的基本用法;4.提高对数据进行分析与处理的能力。

二、问题描述几何学研究的对象是客观世界中物体的形状。

传统欧氏几何学的研究对象,都是规则并且光滑的,比如:直线、曲线、曲面等。

但客观世界中物体的形状,并不完全具有规则光滑等性质,因此只能近似当作欧氏几何的对象,比如:将凹凸不平的地球表面近似为椭球面。

虽然多数情况下通过这样的近似处理后,能够得到符合实际情况的结果,但是对于极不规则的形态,比如:云朵、烟雾、树木等,传统的几何学就无能为力了。

如何描述这些复杂的自然形态?如何分析其内在的机理?这些就是分形几何学所面对和解决的问题。

三、问题解决(1)对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

(2)自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘制出它的图形,并计算其分形维数。

1、程序如下:function plottrkoch(a,k)%函数,a为迭代0次的三角形的边长,k为迭代次数p=[0 0;a 0;a/2 a/2*sqrt(3);0 0];n=3;A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)];for s=1:kj=0;for i=1:nq1=p(i,:);q2=p(i+1,:);d=(q2-q1)/3;j=j+1;r(j,:)=q1;j=j+1;r(j,:)=q1+d;j=j+1;r(j,:)=q1+d+d*A';j=j+1;r(j,:)=q1+2*d;endn=4*n;clear pp=[r;q2];endmianji=sqrt(3)*(1+3*(1-(4/9)^k)/5)/4*a^2%计算迭代k次后的面积大小weishuD=log(4)/log(3)%计算维数plot(p(:,1),p(:,2))axis equal当k=1时当k=3时当k=5时因为是Koch曲线,所以维数d=ln4÷ln3=1.2619计算面积:假设最初的正三角形边长为1,则其周长为,面积为。

华工数学实验报告 迭代与分形

华工数学实验报告 迭代与分形

《数学实验》报告学院:电子信息学院专业班级:信息工程电联班学号:姓名:实验名称:迭代与分析实验日期:2016/05/031.实验目的了解分形几何的基本特性了解通过迭代方式产生分形图的方法欣赏美妙的分形艺术了解分形几何的简单应用2.实验任务对一条横向线段,先将其等分成4段,然后将第2段向上平移,将第3段向下平移,再将4段的相邻端点连接起来,迭代一次后变成下图。

继续迭代得到的分形图,称为Minkowski香肠。

编制程序绘制出它的图形,并计算它的分形维数。

图1Minkowski香肠1次迭代3.实验过程3.1实验原理通过观察该图形可以得知,该图形的相似形个数为8,边长放大倍数为4。

所以要把八条边进行迭代运行,同时把每个点的坐标放入数组中。

3.2算法与编程minkowski的算法代码:function plotminkowski(k)p=[0,0;10,0];n=1;A=[0,1;-1,0];for s=1:kj=0;for i=1:nq1=p(i,:);q2=p(i+1,:);d=(q2-q1)/4;j=j+1;r(j,:)=q1;j=j+1;r(j,:)=q1+d;j=j+1;r(j,:)=q1+d+d*A;j=j+1;r(j,:)=q1+2*d+d*A;j=j+1;r(j,:)=q1+2*d;j=j+1;r(j,:)=q1+2*d-d*A;j=j+1;r(j,:)=q1+3*d-d*A;j=j+1;r(j,:)=q1+3*d;endn=8*n;clear p;p=[r;q2];endfigureplot(p(:,1),p(:,2)) %显示各结点的连线图axis equal3.3计算结果或图形执行命令行:plotminkowski(4)输出图形:图3.3.1四次迭代的minkowski分形图执行命令行:plotminkowski(3)输出图形:图3.3.2三次迭代的minkowski分形图执行命令行:plotminkowski(1)输出图形:图3.3.3一次迭代的minkowski分形图3.4结果分析相似形个数:m=8边长倍数:c=4minkowski分形维度d=ln m/ln c=1.54. 实验总结和实验感悟通过这次实验,我们以迭代的方式来体验生成分形图的过程,从而对分形几何有了一个直观的了解,并感受美丽的分形图案。

迭代分形

迭代分形
G(i, j ) ij / L
• 一些实例 Cantor 树
w j ( Z ) ( Z 2Z j ) / 3, j 1,2,3
p1 p2 p3 1 / 3
龙曲线
w1 ( Z ) sZ 1, w2 ( Z ) sZ 1
p1 p2 1 / 2, s 0.5 0.5i
B. Mandelbrot 观察到英国海岸线与Van
Koch 曲线的关系,提出了一门描述大自 然的几何形态的学科---分形(Fractal)
英国的海岸线有多长?
• B. B. Mandelbrot
• 分形的特性 1、具有无限精细的结构 2、局部与整体的相似性 3、具有非拓扑维数,并且它大于对应的 拓扑维数
0
Z x i y, c p i q
则(2)变为
xn 1 xn 2 yn 2 p yn 1 2 xn yn q (3)
• Julia 集的绘制方法: 1、设定初值 p,q, 最大的迭代次数 N, 图 形的大小 a,b, 及使用的颜色数 K. 2、设定区域的界值
函数的迭代,不动点和有关的作图 介绍浑沌,用数值迭代、蛛网迭代和密度 分布等方法来研究浑沌

浑沌的倍周期分叉、遍历性和某些 普适结构 计算机与科学研究(即使是数学)

问题的提出

什么是浑沌?
出现在各个领域的一种现象:数学、物理、
生物、金融、经济、管理等等: 宇宙的起源 龙卷风的产生、厄尔尼诺现象 东南亚金融危机爆发 “侏罗纪公园”中的恐龙重现
In[1]:= a=1.029; b=1.48654*10^(-11); f1[x_]:=a*x-bx^2;
For[n=1979; x[1979]=9.7542*10^8, n<=2002, n++, x[n+1]=f1[x[n]]; Print[n+1, “ ”,x[n+1]/10^8]]

函数迭代与分形

函数迭代与分形

数学实验实验练习3.1对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

实验练习3.2对一条竖向线段,在三分之一点处,向左上方向画一条线段,在其三分之二分点处,向右上方向再画一条线段,线段长度都是原来的三分之一,夹角都为30度。

代码3.1Homework1.mfunction homework1(d,a) % d为图形基础边长,a为图形阶数A=[cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3)]; %正负30°旋转因子p=[0,0;[0,0]+[d,0]*A';(0+d),0;0,0]; %分形点列矩阵n=3;if n~=1for s=1:(a-1)j=0;for i=1:n %一直线段新增3点q1=p(i,:);q2=p(i+1,:);d=(q2-q1)/3;j=j+1;r(j,:)=q1;j=j+1;r(j,:)=q1+d;j=j+1;r(j,:)=q1+d+d*A';j=j+1;r(j,:)=q1+2.*d;endclear pp=[r;q2];n=4*n;endendfill(p(:,1),p(:,2),'r')axis equal代码3.2Homework2.mfunction homework2(n) %n为图形阶数,一阶是长度为1的竖直直线born=[0;1i];plot(born); %画出主树干hold onzhuan=[exp(1i*pi/6),exp(-1i*pi/6)]; %正负30°旋转因子if n~=1for s=1:(n-1)j=0;b=0;sizeb=size(born);hua=zeros(2,2*3^(s-1)); %装要画出的线段构成的矩阵r=zeros(2,3^s); %装成为新生枝的主干的矩阵for a=1:sizeb(2)p1=born(1,a); %分主干的根点p2=born(2,a); %分主干的顶点d=(p2-p1)/3;j=j+1;hua(1,j)=p1+d; %要画出的分支线段装进hua矩阵hua(2,j)=p1+d+d*zhuan(1);b=b+1;r(1,b)=hua(1,j); %要要成为新分主干的线段装进r矩阵r(2,b)=hua(2,j);j=j+1;hua(1,j)=p1+2*d;hua(2,j)=p1+2*d+d*zhuan(2);b=b+1;r(1,b)=hua(1,j);r(2,b)=hua(2,j);b=b+1;r(1,b)=p1+2*d;r(2,b)=p2;endplot(hua); %画出新分支hold onclear huaborn=r; %装进新的分主干clear rendendaxis equal。

华南理工大学数学实行论文

华南理工大学数学实行论文

1,对初始的 p 矩阵进行的定义,由于三角形是一个封闭的环形,所以需要对矩阵的元 素进行一些改动,除了需要将三角形的三个点放入其中之外,还需要将三角形的第一 个点放到第四位,这样可以实现连线时的循环;2,初始的 n 值应当为按照三角形考虑 时的 3;3,在 clear p 之后将 p 矩阵中加一个三角形的初始点的元素,即(0,0)点。
对一条竖向线段,在其三分之一分点出,向左上方 向画一条线段,在其三分之二点出,向右上方向画一条 线段,线段长度都是原来的三分之一,夹角都为 30 度, 迭代一次后变成如图所示的分型图,继续迭代得到分形 图,可模拟树木花草,编制程序绘制出它的图形。
实验过程
第一个问题 一、模型建立
在本问题中,采用的方法和 koch 曲线类似,即每条边都按照 koch 曲线的形成过程来 进行变换,对于每一条线段,先将其分成三等分,然后将中间的一份替换成一次变为底边 的等边三角形的另外两条边。然后进行无限次的迭代下去。最终形成 koch 曲线,在本问题 中只是将一条 Koch 曲线变成三条 koch 曲线而已。 二、方法分析
实现该功能的代码如下:
function frat(k) A=[cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3)]; p=[0,0;5,10*sin(pi/3);10,0;0,0]; n=3; for s=1:k
j=0; for i=1:n
q1=p(i,:); q2=p(i+1,:); d=(q2-q1)/3; j=j+1;a(j,:)=q1; j=j+1;a(j,:)=q1+d; j=j+1;a(j,:)=q1+d+d*A'; j=j+1;a(j,:)=q1+2*d; end n=4*n; clear p p=[a;0 0]; end plot(p(:,1),p(:,2)); axis equal

数学实验综合实验报告

数学实验综合实验报告

一、实验目的:1、初步认识迭代,体会迭代思想的重要性。

2、通过在mathematica 环境下编写程序,利用迭代的方法求解方程的根、线性方程组的解、非线性方程组的解。

3、了解分形的的基本特性及利用mathematica 编程生成分形图形的基本方法, 在欣赏由mathematica 生成的美丽的分形图案的同时对分形几何这门学科有一个直观的了解。

从哲理的高度理解这门学科诞生的必然性,激发读者探寻科学真理的兴趣。

4、从一个简单的二次函数的迭代出发,利用mathematica 认识混沌现象及其所 蕴涵的规律。

5、.进一步熟悉Mathematic 软件的使用,复习总结Mathematic 在数学作图中的应用,为便于研究数学图像问题提供方便,使我们从一个新的视角去理解数学问题以及问题的实际意义。

6、在学习和运用迭代法求解过程中,体会各种迭代方法在解决问题的收敛速度上的异同点。

二、实验的环境:学校机房,mathematica4环境三、实验的基本理论和方法:1、迭代(一)—方程求解函数的迭代法思想:给定实数域上光滑的实值函数)(x f 以及初值0x 定义数列1()n n x f x +=, ,3,2,1,0=n , (1)n x , ,3,2,1,0=n ,称为)(x f 的一个迭代序列。

(1)方程求根给定迭代函数)(x f 以及初值0x 利用(1)迭代得到数列n x , ,3,2,1,0=n .如果数列收敛到某个*x ,则有)(**x f x =. (2)即*x 是方程)(x f x =的解。

由此启发我们用如下的方法求方程0)(=x g 的近似解。

将方程0)(=x g 改写为等价的方程)(x f x =, (3) 然后选取一初值利用(1)做迭代。

迭代数列n x 收敛的极限就是方程0)(=x g 的解。

为了使得迭代序列收敛并尽快收敛到方程0)(=x g 的某一解的条件是迭代函数)(x f 在解的附近的导数将的绝对值尽量小,因此迭代方程修订成x x f x h x )1()()(λλ-+== (4) 选取λ使得|)(|x h '在解的附近尽量小. 为此, 我们可以令,01)()(=-+'='λλx f x h得)(11x f '-=λ. 于是 1)()()(-'--=x f x x f x x h . 特别地,如果取x x g x f +=)()(, 则可得到迭代公式 .,1,0,)()(1 ='-=+n x g x g x x n n n n (5) (2)线性方程组的数值解的迭代求解理论与矩阵理论给定一个n 元线性方程组⎪⎩⎪⎨⎧=++=++,,1111111n n nn n n n b x a x a b x a x a (6)或写成矩阵的形式,b Ax = (7) 其中)(ij a A =是n 阶方阵,T n x x x x ),,(21 =及T n b b b b ),,,(21 =均为n 维列向量.熟知,当矩阵A 的行列式非零时,以上的方程组有唯一解.如何有效,快速地寻求大型的线性方程组的数值解释科学工程计算中非常重要的任务.而迭代法常常是求解这些问题的有效方法之一。

最新整理数学实验之五迭代(1)分形与混沌.ppt

最新整理数学实验之五迭代(1)分形与混沌.ppt
一个变8个: 旋转与对称
4 阶幻方构造法
4x
+
同加1
独孤求败基本定理 ---- 高水平=简单
• 山寨算术例1: 算24 • 将以下每组四个数经过加
减乘除得到24. • (1)5,5,5,1;(2)3,3,7,7 • (3)4,4,7,7;(4)3,3,8,8
• 算24 • 5*5-1=24 • 5*(5-1/5)=24 • 运算律的应用! • (3*8)/(3*3-8)= 24 • 分子分母同除以 3 • 8/ (3-8/3) = 24
• 删去多余的方程 ---- 打假 • 将打假进行到底 • 极大线性无关组 • 剩下的方程的个数---- 秩rank
数学聊斋
之三
•人与照片之维数
线性代数
空间为体, 矩阵为用
• 研究对象----几何:线性空间(向量) • 研究工具----代数:矩阵运算 • 向量 (问题) 矩阵语言描述
矩阵运算解决 向量(解答) • 与微积分的关系:
• 分子分母都是多项式: 享受幸运约分. • Else,创造幸运 化成多项式再约分.
微积分诗四首
之三 定积分
一帆难遇风顺 一路高低不平 平平淡淡分秒 编织百味人生
微积分基本概念(二) ---- 定积分
速度 v(t) 路程 s(t) • 路程 = 速度* 时间 • 速度变化怎么办? • 分段计算: Dsi = v(ti)* Dti • 各段相加:s = Si Dsi, Dti 0
足球的方与圆
•圆---比赛胜负有偶然性 •方---强弱差别客观存在 •米卢---实现概率 •施与霍---提高概率
概率
•沙场百胜古来稀, •九密一疏已足奇。 •祸福偶然存概率, •风云多变泄天机。

数学实验迭代:分形

数学实验迭代:分形

迭代:分形姓名:学号:班级:数学与应用数学4班实验报告实验目的:以迭代的观点介绍分形的基本特性以及生成分形图形的基本方法,使读者在欣赏美丽的分形图案的同时对分形几何这门学科有一个直观的了解,并从哲理的高度理解这门学科诞生的必然,激发读者探寻科学真理的兴趣。

实验环境:Mathematica软件实验基本理论和方法:在19世纪末及20世纪初,一些数学家就构造出一些边界形状极不光滑的图形,而这类图形的构造方式都有一个共同的特点,即最终图形F都是按照一定的规则R通过对初始图形不断修改得到的。

其中最有代表性的图形是Koch曲线,Koch曲线的构造方式是:给定一条直线段,将该直线段三等分,并将中间的一段用以该线段为边的等边三角形的另外两条边代替,得到图形,然后再对图形中的每一小段都按上述方式修改,以至无穷。

则最后得到的极限曲线即是所谓的Koch曲线。

生成元:Koch曲线的修改规则R是将每一条直线段用一条折线代替,我们称为该分形的生成元。

分形的基本特性完全由生成元确定,因此,给定一个生成元,我们就可以生成各种各样的分形图形。

Julia集绘制方法:(1)设定初值p,q,一个最大的迭代次数N,图形的分辨率的大小a,b,和使用的颜色数(如K=16)(或者给定灰度级L);(2)设定一个上界值;(3)将矩形区域分成的网格,分别以每个网格点,,,,作为初值利用riter做迭代(实际上,只需对满足的初值点做迭代)。

如果对所有,,则将图形的像素点用黑色显示,否则,如果从迭代的某一步开始有,则用modK种颜色显示相应像素(或者用相应的灰度级显示)。

Mandelbrot集绘制方法:设定一个最大的迭代次数N,图形的分辨率的大小a,b,和使用的颜色数(如K=16)(或者给定灰度级L);(2)设定一个上界值;(3)将矩形区域分成的网格,分别以每个网格点,,,,作为参数值利用riter做迭代(实际上,只需对的初值点做迭代),每次迭代的初值均取为。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将这个文件保存,文件名 ex31.m。调用方式如下: 代码:ex31(20,1) 运行结果:图 2-2-1。 代码:ex31(20,2) 运行结果:图 2-2-2。
图 2-2-1
图 2-2-2
三、问题描述与分析
1. 如何描述复杂的自然形态 几何学研究的对象是客观世界中物体的形状。传统欧氏几何学的研究对象, 都是规则并且光滑的,比如:直线、曲线、曲面等。但客观世界中物体的形状, 并不完全具有规则光滑等性质,因此只能近似当作欧氏几何的对象,比如:将凹 凸不平的地球表面近似为椭球面。虽然多数情况下通过这样的近似处理后,能够 得到符合实际情况的结果,但是对于极不规则的形态,比如:云朵、烟雾、树木 等,传统的几何学就无能为力了。 通常的几何体具有整数维,比如:一维的线段、二维的正方形、三维的立方 体,维数就是几何体在“尺度”上的特征。对于分形中的几何对象,通常意义下 的维数已经没有意义,比如 Koch 曲线(长度是无穷大,面积是零),用一维的 “线段”去量,得数无穷大,“尺子”太小;用二维的“正方形”去量,得数为 零,“尺子”又太大,因此需要定义分形自己的维数(分数维)。 2.分形几何的起源 分形几何的概念是美籍法国数学家曼德尔布罗特(Mandelbrot)于 1975 年 首先提出的,但最早的工作可追朔到 1875 年,德国数学家维尔斯特拉斯 (Weierestrass)构造了处处连续但处处不可微的函数,集合论创始人康托尔 (Cantor,德国数学家)构造了有许多奇异性质的康托尔三分集。1890 年,意 大利数学家皮亚诺(Peano)构造了填充空间的曲线。1904 年,瑞典数学家科赫 (Koch)设计出类似雪花和岛屿边缘的一类曲线。1915 年,波兰数学家谢尔宾 斯基(Sierpinski)设计了象地毯和海绵一样的几何图形。这些都是为解决分析 与拓朴学中的问题而提出的反例,但它们正是分形几何思想的源泉。
%原终点作为下条线段的起点,在迭代下条线段时存入 r %全部线段迭代一次后,线段数量乘 4 %清空 p ,注意:最后一个终点 q2 不在 r 中
n=4*n; clear p
p=[r;q2]; %重新装载本次迭代后的全部结点 end plot(p(:,1),p(:,2)) %显示各结点的连线图 axis equal %各坐标轴同比例
d ln m ln c ,
即c d
m
2
对于通常的几何对象,采用这种方式计算出来的维数,与传统的维数是一致 的,比如对正方形,将它边长 k 等份,则相似形个数 m = k ,每边长放大 k 倍后 与原长相同,即 c = k,显然 d = 2。 人类肺的构造,从气管尖端成倍地反复分叉,是一种典型的分形,其分维数 大约是 2.17。 4. 本实验的思路 分形几何把自然形态看作是具有无限嵌套的层次结构,并且在不同尺度下 保持某种相似的属性,于是,简单的迭代过程,就是描述复杂的自然形态的有效 方法。本实验通过迭代的方式,展示了几种经典分形图形的生成过程。
图 4-1-1
图 4-1-2
(1)编辑实现上述迭代的函数 在 Matlab 中,编制一个函数来绘制 Koch 曲线的图形。具体代码如下: function frat1(k) %显示迭代 k 次后的 Koch 曲线图 p=[0,0;10,0]; %存放结点坐标,每行一个点,初始值为两结点的坐标 n=1; %存放线段的数量,初始值为 1
例1
用红色填充一个圆形区域
代码:t=0:0.01*pi:2*pi; x = sin(t); y = cos(t); fill(x,y,'r') 运行结果:图 2-1-1。
图 2-1-1
2. 什么是迭代 迭代法是常用的一种数学方法,就是将一种规则反复作用在某个对象上,它 可以产生非常复杂的行为。我们这里介绍图形迭代和函数迭代两种方式: (1)图形迭代 给定初始图形 F0,以及一个替换规则 R,将 R 反复作用在初始图形 F0 上,产生 一个图形序列:R(F0)=F1,R(F1)=F2,R(F2)=F3,… (2)函数迭代 给定初始值 x0,以及一个函数 f(x),将 f(x)反复作用在初始值 x0 上,产生一 个数列:f(x0)=x1,f(x1)=x2,f(x2)=x3,…
0.6 0.4 0.2
-1
-0.5 -0.2 -0.4 -0.6
0.5
1
布朗运动轨迹
Weierestrass 函数
3. 分形几何体的维数 分形的维数目前有多种定义,我们这里介绍相似维数。 设分形 F 是自相似的, 即 F 由 m 个子集构成, 每个子集放大 c 倍后同 F 一样, 则定义 F 的维数为:
a1=[]; %保存迭代后所有顶点的 x 坐标 b1=[]; %保存迭代后所有顶点的 y 坐标 %根据小正方形的顶点坐标, %计算迭代后形成的 8 个新的小正方形的顶点坐标 for q=1:length(x); %每个小正方形计算一次 x1=x(q)+[0,d/3,2*d/3,0,2*d/3,0,d/3,2*d/3]; %新的 x 坐标 y1=y(q)+[0,0,0,d/3,d/3,2*d/3,2*d/3,2*d/3]; %新的 y 坐标 a1=[a1,x1]; %所有顶点 x 坐标存入 a1 b1=[b1,y1]; %所有顶点 y 坐标存入 b1 end d=d/3; %迭代一次,边长缩小 x=a1; %全部的 x 坐标重新放入 x y=b1; %全部的 y 坐标重新放入 y
end hold on %在同一个图形窗口显示 for q=1:length(x); %用蓝色注满多边形区域 fill(x(q)+[0,d,d,0,0],y(q)+[0,0,d,d,0],'b') % end hold off axis off axis equal % %不要坐标轴 %各坐标轴同比例
q1=p(i,:);
q2=p(i+1,:); %目前线段的终点坐标 d=(q2-q1)/3; j=j+1;a(j,:)=q1; j=j+1;a(j,:)=q1+d; %原起点存入 a %新 1 点存入 a
j=j+1;a(j,:)=q1+d+d*A'; %新 2 点存入 a j=j+1;a(j,:)=q1+2*d; end %新 3 点存入 a
图 4-2-1
图 4-2-2
(1)编辑实现上述迭代的函数 本函数主要的思路是,根据线段两个结点的坐标,计算迭代后它们之间增 加的三个结点的坐标。函数代码如下: function frat2(k) %显示等边三角形迭代 k 次后的图形 A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %用于计算新的结点 p=[0 0;10 0]; %存放结点坐标 n=1; for s=1:k j=0; for i=1:n %每条边计算一次 %目前线段的起点坐标 %存放线段的数量,初始值为 1 %实现迭代过程,计算所有的结点的坐标
q1=p(i,:);
q2=p(i+1,:); %目前线段的终点坐标 d=(q2-q1)/3; j=j+1;r(j,:)=q1; j=j+1;r(j,:)=q1+d; %原起点存入 r %新 1 点存入 r
j=j+1;r(j,:)=q1+d+d*A'; %新 2 点存入 r j=j+1;r(j,:)=q1+2*d; end %新 3 点存入 r
例 2 针对函数 f ( x) 2sin x ,取初始值 x0 1 ,做迭代,并作图观察 在 matlab 的 M 文件编辑器中,编辑以下代码: function ex31(n,x0) fn=[x0]; for i=2:n fn=[fn, 2*sin(fn(i-1)) ]; end plot(fn) %画曲线 %将第 i 项添加到数组 fn 中 %n-迭代次数, x0-初值
将这个文件保存,文件名 frat2.m。
(2)绘制城堡的图形 代码:frat4(3) 运行结果:图 4-2-3,迭代 3 次的图形。 代码:frat4(5) 运行结果:图 4-2-4,迭代 5 次的图形。
图 4-2-3
图 4-2-4
3. 谢尔宾斯基(Sierpinski)地毯 Sierpinski 地毯也是通过图形迭代的方式产生的,其迭代规则是: 对一个正方形,首先将它分成九个小正方形,然后挖去中间的一个。无限 次迭代下去,最终形成的图形就是 Sierpinski 地毯。第一次迭代得图 4-3-1, 第二次迭代得图 4-3-2,具体图形如下:
%原终点作为下条线段的起点,在迭代下条线段时存入 a %全部线段迭代一次后,线段数量乘 4
n=4*n;
clear p
%清空 p ,注意:最后一个终点 q2 不在 a 中
p=[a;q2]; %重新装载本次迭代后的全部结点 end plot(p(:,1),p(:,2)) ;%显示各结点的连线图 fill(p(:,1),p(:,2),'k') %填充颜色 set(findobj(gcf,'type','patch'),'edgecolor','none') %不显示边界 axis off hold off %不要坐标轴
四、实验过程
本试验以迭代的方式,来体验生成分形图形的基本方法,并感受美丽的分 形图案,从而对分形几何有一个直观的了解。 1. 科赫(Koch)曲线 Koch 曲线是通过图形迭代的方式产生的,其迭代规则是: 对一条线段,先将它分成三等份,然后将中间的一份替换成以此为底边的 等边三角形的另外两条边。无限次迭代下去,最终形成的曲线就是 Koch 曲线。 第一次迭代得图 4-1-1,第二次迭代得图 4-1-2,具体图形如下:
图 4-3-1
图 4-3-2
(1)编辑实现上述迭代的函数 在 Matlab 中,编制一个函数来实现上述迭代。具体代码如下: function frat3(x,y,d,n); % x 为正方形的顶点的横坐标,可取 0 (一个顶点代表一个小正方形) % y 为正方形的顶点的纵坐标,可取 0 % d 为初始正方形边长,可取 1 % n 为迭代次数,可取 4 for p=1:n; %实现迭代过程,计算所有的顶点坐标
相关文档
最新文档