基于MATLAB实现分形图形的绘制.docx

您所在的位置:网站首页 分形几何图形 基于MATLAB实现分形图形的绘制.docx

基于MATLAB实现分形图形的绘制.docx

2023-01-13 22:25| 来源: 网络整理| 查看: 265

基于MATLAB实现分形图形的绘制.docx

基于MATLAB实现分形图形的绘制.docx

文档编号:248514上传时间:2022-10-07格式:DOCX页数:27大小:494.79KB

目 录

前 言 1

第一章 MATLAB介绍 2

1.1MATLAB简介 2

1.2MATLAB语言 2

1.2.1创建向量、向量元素的访问:

2

1.2.2创建矩阵、矩阵元素的访问 3

1.2.3流程控制 4

1.3MATLAB语言的传统优点 5

第二章 分形入门知识 6

2.1分形理论 6

2.2分形几何观及其应用 7

第三章 Koch雪花的绘制 8

3.1vonKoch曲线简介 8

3.2Koch雪花算法设计 9

第四章 Frac_tree绘制 11

第五章 Mandelbort集的绘制 13

5.1Mandelbort集简介 13

5.2Mandelbort集算法设计 13

第六章 Julia集的绘制 18

6.1Julia集简介 18

6.2Julia集的算法设计 18

6.3Julia集与Mandelbort集 20

第七章 花篮簇的绘制 22

总 结 23

主要参考文献:

23

前 言

分形是描述不规则几何形态的有力工具。

不言而喻,不规则的几何形态在我们的周围处处可见,诸如花草、山脉、烟云、火焰等举目皆是。

至于微观世界的复杂物质结构,宏观世界浩瀚天体的演变,更展现出了层出不穷的不规则几何形态,它们往往都是分形几何的研究对象。

大自然向人类展示其美丽多变形态的同时,也提出了难以回答的询问:

怎样描述复杂的自然表象?

恰恰是分形几何学,它把自然形态看作是具有无限嵌套层次的精细结构,并且在不同的尺度下保持某种相似的属性,于是在变换与迭代中得到描述自然形态的有效方法。

分形的研究离不开计算机。

如果不是计算机图形图像处理功能的增强,不能想象怎样才能直观地看到Julia集和Mandelbort集的精细结构,更不能想象可以产生具有无限细结的自然景物和高度真实感的三维动画。

反过来,分形理论与方法又极大地丰富了计算机图形学内容,甚至分形的思想会在计算机科学的发展上产生一定的影响。

下面我们将以MATLAB为平台,讲述用M语言实现分形图形的绘制。

在毕业设计中我主要负责绘制图形的程序部分,由负责其界面制作、程序与界面接口调试工作。

在设计过程中,遇到了许多问题、困难,但是,在我的导师蒲俊教授和我的搭档黄娟同学一如既往的帮助和鼓励下,我们终于完成了毕业设计。

在此,特别向我的导师及搭档致以诚挚的谢意。

第15页

第一章 MATLAB介绍

1.1MATLAB简介

MATLAB是由美国的MathWork公司推出的一个为科学和工程计算而专门设计的高级交互式软件包。

它是一种高性能的用于工程计算的编程软件,它把科学计算、编程和结果的可视化都集中在一个使用非常方便的环境中。

MATLAB最早是做为矩阵实验室(Matrix Laboratory),20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的矩阵软件接口,此即用FORTRAN编写的萌芽状态的MATLAB。

当其以商品形式出现后,短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包纷纷淘汰,而改以MATLAB为平台加以重建。

进入20世纪90年代,MATLAB已经成为国际控制界公认的标准计算软件。

Math Works公司于1993年推出MATLAB4.0版本,从此告别DOS版。

1997年,MATLAB5.0版问世到现在最新版本MATLAB6.5.1,MATLAB的功能不断得到加强,使其在科学计算、控制系统设计与分析、数学信号处理、数字图像处理、通讯系统仿真与设计等领域的应用独领风骚。

其典型的应用范围包括以下方面:

(1)数学计算

(2)算法推导

(3)建模和仿真模拟

(4)工程图形的绘制

(5)应用程序的开发,包括用户图形界面的建立

1.2MATLAB语言

1.2.1创建向量、向量元素的访问:

向量的创建方法主要有下面两种:

第一种:

逐个输入元素,彼此元素之间可以使用空格或者逗号作为间隔符。

如x=[13pi3+5i]或者x=[1,3,pi,3+5i]形式;

第二种:

利用冒号运算符创建向量,基本语法为X=J:

INC:

K,其中J为向量的第一个元素,而K为向量的最后一个元素,INC为向量元素递增的步长。

若在表达式中忽略INC,则默认的递增步长为1。

INC可以为正数也可以为负数,如果INC为正数,则必须JK,否则创建的为

空向量。

访问向量的元素只要使用相应元素的索引即可。

1.A(n)访问向量的第n个元素;

2.A([ijk])或者A([i,j,k])访问向量的第i、j、k个元素;

3.A([j:

k,k:

-1:

j]) 重复访问向量中的元素。

1.2.2创建矩阵、矩阵元素的访问

这里,由于输入矩阵的元素、行、列较少,我们采用直接输入矩阵元素法来创建矩阵。

如输入

A=[123;456;789]

é1

ê

则A=ê4

êë7

2 3ù

6

ú

5 ú

8 9úû

在创建过程中,矩阵的元素行与行之间需要用分号“;”间隔,也可以在需要分行的地方用回车键间隔,矩阵的元素之间可以使用逗号“,”或者空格间隔。

其实创建上面的矩阵还可以这么做A=[1:

3;4:

6;7:

9]。

我们可以将矩阵的每一行或者每一列看作一个向量,矩阵就是由若干向

组合而成的。

那么矩阵元素的访问则类似于向量元素的访问,使用索引即可。

矩阵元素的访问

表1.1使用索引访问矩阵元素的方法

说 明

A(i,j) 访问矩阵A的第i行第j列上的元素,其中i

和j为标量

A(I,J) 访问有向量I和J指定的矩阵A中的元素

A(i,:

) 访问矩阵A中第i行的所有元素

A(:

j) 访问矩阵A中第j列的所有元素

A(:

) 访问矩阵A中的所有元素,将矩阵看作一个向量

A(l) 使用单下标的方式访问矩阵元素,其中l为标量

访问有向量L指定的矩阵A的元素,向量L中

A(L)

的元素为矩阵元素的单下标数值

矩阵元素的单下标与全坐标之间的转换关系如下,以m*n的矩阵为例,该矩阵的第i行第j列的元素全下标表示为单下标l=(j-1)*m+i。

为了方便全下标和单下标之间的转换,MATLAB提供了两个函数分别完成两者之间的相互转换:

sub2ind:

根据全下标计算单下标。

ind2sub:

根据单下标计算全下标。

1.2.3流程控制

程序流程控制包含控制程序流程的基本结构和语法,例如应用程序的选择和循环结构,这也是结构化编程的基本基本结构,使用结构化的应用程序设计方法可以使设计的程序结构清晰、可读性强,能够提高应用程序的设计效率,增强程序的可维护性。

结构化的程序主要有三种基本的程序结构:

顺序结构、选择结构、循环结构。

本节主要介绍选择结构中的if语句,循环结构中的for循环。

1.if语句的基本语法结构有三种,分别如下:

(1)if(关系运算表达式)

MATLAB语句

end

这种形式的选择结构表示,当关系运算表达式计算的结果为逻辑真的时候,执行MATLAB语句,这里的MATLAB语句也可以是多个MATLAB表达式。

(2)if(关系运算表达式)

MATLAB语句A

else

MATLAB语句B

end

这种形式的选择结构表示,当关系运算表达式的计算结果为逻辑真的时候,执行MATLAB语句A,否则执行MATLAB语句B。

(3)if(关系表达式a)

MATLAB语句A

elseif(关系运算表达式b)

MATLAB语句B

else(关系表达式c)

…end

这种选择结构可以判断多条关系运算表达式的计算结果,然后按照执行

的逻辑关系执行相应的语句。

2.for语句构成循环的循环是最灵活、简洁的方法,不过使用for语句循环需要预先知道循环体执行的次数。

在MATLAB中for循环的基本结构如下:

forindex=start:

increment:

end

MATLAB语句

end

其中,index的取值取决于start和end的值,increment为步长,默认的数值为1。

和其他高级语言类似,MATLAB的循环结构也可以进行嵌套使用,在使用时需要注意for关键字和end关键字之间的配对使用。

1.3MATLAB语言的传统优点

MATLAB自问世起,就以数值计算称雄。

MATLAB进行数值计算的基本处理单位是复数数组,并且数组维数是自动按照规则确定的。

这一方面使MATLAB程序可以被高度“向量化”,另方面使用户易读易写。

比如已知t的采样数据是(n*m)维数组,要计算y=e-2tsin(5t)。

对一般

的计算语言来说,必须采用两层循环才能得到结果,不但程序复杂,而且那些讨厌的循环十分费时。

MATLAB处理这类问题则简洁快捷的多,只需直接了当的一条指令y=exp(-2*t).*sin(5*t),就可获得同样结果。

这就是所谓的

“数组运算”。

这种运算在下面的分形图绘制过程中,将被频繁使用。

第二章 分形入门知识

谁创立了分形几何学

2.1分形理论

1973年,美籍法国数学家B.Mandelbrot在法兰西学院讲课时,首次提出了分维和分形几何的设想。

分形(Fractal)一词,是Mandelbort教授创造出来的,其原意具有不规则、支离破碎等意义,分形几何学是一门以非规则几何形态为研究对象的几何学。

由于不规则现象在自然界是普遍存在的,因此分形几何又称为描述大自然的几何学。

分形几何建立以后,很快就引起了许多学科的关注,这是由于它不仅在理论上,而且在实用上都具有重要价值。

分形几何与传统几何相比有何特点

(1)从整体上看,分形几何图形是处处不规则的。

例如,海岸线和山川形状,从远距离观察,其形状是极不规则的。

(2)在不同尺度上,图形的规则性又是相同的。

上述的海岸线和山川形状,从近距离观察,其局部形状又和整体形态相似,它们从整体到局部,都是自相似的。

当然,也有一些分形几何图形,它们并不完全是自相似的。

其中一些是用来描述一般随即现象的,还有一些是用来描述混沌和非线性系统的。

Fractal(分形)一词的由来

据Mandelbort教授自己说,fractal一词是1975年夏天的一个寂静夜晚,他在冥思苦想之余偶翻他儿子的拉丁文字典时突然想到的。

此词源于拉

丁文形容词fractus,对应的拉丁文动词是frangere(破碎、产生无规碎片)。

此外与英文的fraction(碎片、分数)及fragment(碎片)具有相同的词根。

在70年代中期以前,Mandelbort一直使用英文fractional一词来表示他的分形思想。

因此,取拉丁词之头,撷英文之尾的fractal,本意是不规则的、破碎

的、分数的。

Mandelbort是想用此词来描述自然界中传统欧几里德几何学所不能描述的一大类复杂无规的几何对象。

例如,弯弯曲曲的海岸线、起伏不平的山脉,粗糙不堪的断面,变幻无常的浮云,九曲回肠的河流,纵横交错的血管,令人眼花僚乱的满天繁星等。

它们的特点



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3