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

合集下载

Matlab实验报告:分形迭代

Matlab实验报告:分形迭代

数学实验报告:分形迭代练习11.实验目的:绘制分形图案并分析其特点。

2.实验内容:绘制Koch曲线、Sierpinski三角形和树木花草图形,观察这些图形的局部和原来分形图形的关系。

3.实验思路:利用函数反复调用自己来模拟分形构造时的迭代过程,当迭代指标n为0时运行作图操作,否则继续迭代。

4.实验步骤:(1)Koch曲线function koch(p,q,n) % p、q分别为koch曲线的始末复坐标,n为迭代次数if (n==0)plot([real(p);real(q)],[imag(p);imag(q)]);hold on;axis equalelsea=(2*p+q)/3; % 求出从p 到q 的1/3 处端点ab=(p+2*q)/3; % 求出从p 到q 的2/3 处端点bc=a+(b-a)*exp(pi*i/3);%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(2)Sierpinski三角形function sierpinski(a,b,c,n) % a、b、c为三角形顶点,n为迭代次数if (n==0)fill([real(a) real(b) real(c)],[imag(a) imag(b) imag(c)],'b');% 填充三角形abchold on;axis equalelsea1=(b+c)/2;b1=(a+c)/2;c1=(a+b)/2;sierpinski(a,b1,c1,n-1);sierpinski(a1,b,c1,n-1);sierpinski(a1,b1,c,n-1);end(3)树木花草function grasstree(p,q,n) % p、q分别为树木花草始末复坐标,n为迭代次数plot([real(p);real(q)],[imag(p);imag(q)]);hold on;axis equalif(n>0)a=(2*p+q)/3;b=(p+2*q)/3;c=a+(b-a)*exp(pi*i/6);%d=b+(q-b)*exp(-pi*i/6);%grasstree(a,c,n-1);grasstree(b,d,n-1);endend5.主要输出:指令:koch(0,1,5); soerpinski(0,1,exp(pi*i/3),5); grasstree(0,i,5);Koch曲线Sierpinski三角形树木花草6.实验结论:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。

matlab混沌,分形

matlab混沌,分形

matlab混沌,分形对于函数f(x)=λsin(πx),λ∈(0,1],使⽤matlab计算随着λ逐渐增⼤,迭代x=f(x)的值,代码如下:function y=diedai(f,a,x1)N=32;y=zeros(N,1);for i=1:1e4x2=f(a,x1);x1=x2;y(mod(i,N)+1)=x2;endend%f=@(a,x)a*x*(1-x);f=@(a,x)a*sin(pi*x);%x0=0.1;hold on;for x0=-1:0.05:1for a=0:0.01:1y=diedai(f,a,x0);for count=1:32plot(a,y(count),'k.');hold on;endendend得到的图像如下:其中横轴为λ,纵轴为x可以看到随着λ的逐渐增⼤,出现了倍周期分叉的情况。

由图中可以看出第⼀个分叉值⼤约在0.3附近,第⼆个在0.73到0.75之间,第三个在0.8到0.85之间,混沌⼤约出现在0.86附近。

接下来编写代码计算分叉值,代码如下:format long;x0=0.1;for a=0.3182:0.0000001:0.3183y=diedai(f,a,x0);if max(y)>0.001disp(a);break;endend得到第⼀个分叉值⼤约为0.3182298format long;x0=0.1;for a=0.7199:0.000001:0.72y=diedai(f,a,x0);if max(y)-min(y)>0.001disp(a);break;endend得到第⼆个分叉值⼤约为0.719911format long;x0=0.1;for a=0.8332:0.000001:0.8333y=diedai(f,a,x0);if abs(y(32)-y(30))>0.001disp(a);break;endend得到第三个分叉值⼤约为0.833267利⽤Feigenbaum常数估计第三个分叉值,得到0.805939分形图周常青画mandelbrot分形图,主要使⽤了三个函数:iter=mandelbrot1(x0,y0,maxIter),⽤来计算迭代后是否收敛,⽅程z=z2+z0。

Matlab软件在分形几何上的应用

Matlab软件在分形几何上的应用

第8卷第4期2008年8月湖南工业职业技术学院学报JO URNAL O F HUNAN IND USTRY POLY TECHN I CVol 18No 14Aug 12008Matlab 软件在分形几何上的应用周后云(湖南商务职业技术学院,湖南长沙 410205)[摘 要] 以Koch 曲线和塞尔平斯基三角形为例,介绍了Ma tlab 软件在分形几何方面,对不规则图形进行直观描绘的方法。

[关键词] Matlab;分形几何;Koch 曲线;塞尔平斯基三角形。

[中图分类号] T N11 [文章标识码] A [文章编号] 1671-5004(2008)04-0148-02I n tu iti on isti c Underst and i n g Fract a l Geo m etry w ith M a tl ab Soft wareZ HOU Hou -yun(Hunan Vocati onal College of Commerce,Changsha 410205,Hunan )[Abstract] The paper tries t o describe Koch curve and Sier p inski triangle intuiti onisticly withMatlab s oft w are 1It gives reader si m p le fractal ge 2ometry knowledge 1[Key words] Matlab;fractal geometry;Koch curve;Sier p inski triangle 1 [收稿日期] 2008-06-15 [作者简介] 周后云(1981-),男,湖南邵阳人,湖南商务职业技术学院党委秘书,助教。

线性几何中所描述的圆、三角形、多边形、球等规则图形,其实在生活中,并不多见。

像河流、地貌、树叶、白云、雪花、布朗运动的分子轨迹等,多是不规则图形。

几个分形的matlab实现资料

几个分形的matlab实现资料

几个分形的matlab 实现摘要:给出几个分形的实例,并用matlab 编程实现方便更好的理解分形,欣赏其带来的数学美感关键字:Koch 曲线 实验 图像一、问题描述:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下图1在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch 分形曲线。

二、算法分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程。

图1中,设1P 和5P 分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点2P ,3P ,4P。

显然2P 位于线段三分之一处,4P 位于线段三分之二处,3P 点的位置可看成是由4P点以2P 点为轴心,逆时针旋转600而得。

旋转由正交矩阵 ⎪⎪⎪⎪⎭⎫ ⎝⎛-=)3cos()3sin()3sin()3cos(ππππA 实现。

算法根据初始数据(1P 和5P 点的坐标),产生图1中5个结点的坐标。

结点的坐标数组形成一个25⨯矩阵,矩阵的第一行为1P 的坐标,第二行为2P 的坐标……,第五行为5P 的坐标。

矩阵的第一列元素分别为5个结点的x 坐标,第二列元素分别为5个结点的y 坐标。

进一步考虑Koch 曲线形成过程中结点数目的变化规律。

设第k 次迭代产生的结点数为k n ,第1+k 次迭代产生的结点数为1+k n ,则k n 和1+k n 中间的递推关系为341-=+k k n n 。

三、实验程序及注释:p=[0 0;10 0]; %P为初始两个点的坐标,第一列为x坐标,第二列为y坐标n=2; %n为结点数A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %旋转矩阵for k=1:4d=diff(p)/3; %diff计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d就计算出每个向量长度的三分之一,与题中将线段三等分对应 m=4*n-3; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(5:4:m,:)=p(2:n,:); %迭代后处于4k+1位置上的点的坐标为迭代前的相应坐标 p(2:4:m,:)=q+d; %用向量方法计算迭代后处于4k+2位置上的点的坐标p(3:4:m,:)=q+d+d*A'; %用向量方法计算迭代后处于4k+3位置上的点的坐标p(4:4:m,:)=q+2*d; %用向量方法计算迭代后处于4k位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])四、实验数据记录:由第三部分的程序,可得到如下的Koch分形曲线:图2五、注记:1.参照实验方法,可绘制如下生成元的Koch 分形曲线:图3此时,旋转矩阵为:⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎭⎫ ⎝⎛-=0110)2cos()2sin()2sin()2cos(ππππA 程序和曲线如下:p=[0 0;10 0]; %P 为初始两个点的坐标,第一列为x 坐标,第二列为y 坐标n=2; %n 为结点数A=[0 -1;1 0]; %旋转矩阵for k=1:4d=diff(p)/3; %diff 计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d 就计算出每个向量长度的三分之一,与题中将线段三等分对应 m=5*n-4; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(6:5:m,:)=p(2:n,:); %迭代后处于5k+1位置上的点的坐标为迭代前的相应坐标 p(2:5:m,:)=q+d; %用向量方法计算迭代后处于5k+2位置上的点的坐标 p(3:5:m,:)=q+d+d*A'; %用向量方法计算迭代后处于5k+3位置上的点的坐标 p(4:5:m,:)=q+2*d+d*A'; %用向量方法计算迭代后处于5k+4位置上的点的坐标 p(5:5:m,:)=q+2*d; %用向量方法计算迭代后处于5k 位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])图4由于中间三分之一部分是一个正方形时,有很多连接的部分。

matlab分形

matlab分形

以及相应的一组概率p1 ,, pn ,( p1 pn 1, pi 0). 对于任意选取的初始值 z0 ( x0 , y0 ),以概率 pi 选取变 换 wi 做迭代
zk 1 ( xk 1 , yk 1 ) wi ( xk , yk ), k 0,1, 2,
{zk }0收敛的极限图形称为一个IFS吸引子, 则点列 k
F lim Fk
k
即是所谓的Koch曲线。
Koch曲线的修改规则R是将每一条直线段F0用 一条折线F1替代,称F1为生成元。
生成Koch曲线的Matlab程序
clear clf new=[1 0]; kmax=3; for k=1:kmax old=new; n=length(old)-1; for m=0:n-1;
由生成元产生的分形是一种规则分形,是数学 家按一定规则构造出来的,相当于物理中的模型。 这类图形的构造方式都有一个共同的特点:
最终图形 F 都是按照一定的规则 R 通过 对初始图形 F0 不断修改得到的。
最具代表性的图形有Koch雪花曲线、分形树

Koch雪花曲线:
给定一条直线段F0,将该直线三等分,并将中 间的一段用以该线段为边的等边三角形的另外两边 代替,得到图形F1,然后,再对图形F1中的每一小 段都按上述方式修改,以至无穷。则最后得到的极 限曲线
尽管分形几何的提出只有三十年左右的时间, 但它已经在自然科学的各个领域如数学、物理、 化学、地理、天文、材料、生命乃至经济、社会、 艺术等极其广泛的领域有着广泛的应用。
这里以迭代的观点介绍分形的基本特性以及生 成分形图形的基本方法。

生成元产生的分形图形

由IFS(迭代函数系)所生成的分形图形

实验三MATLAB的图形功能于分形共73页文档

实验三MATLAB的图形功能于分形共73页文档


28、知之者不如好之者,好之者不如乐之者。——孔子

29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇

30、意志是一个强壮的盲人,倚靠在要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
实验三MATLAB的图形功能于分形
11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,先有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野 人。(名 言网) 13、不怕,不悔(虽然只有四个字,但 常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。

分形图像绘制软件的设计与实现

分形图像绘制软件的设计与实现

摘要分形是最近二三十年来才发展起来的一门新的学科,分形理论进一步可分为规则和不规则分形,不规则分形主要是描述简单的几何对象的性质和非线性系统中不光滑的和不规则的几何形式,作为一个可以用来描述很多科学现象的有效工具,它已经被广泛应用于计算机科学等许多领域,并且在各自的领域内都有了很好的理论上的发展,并且在实践性的艺术性上也有了很好的发展,大大拓宽了人们的视野,加深了人们对科学及艺术的理解。

本次毕业设计,目的是创建一个基于MATLAB的平台,简单,易于用户操作分形图软件,它应该符合经典分形图系统,具有一般分形图的功能,满足一定的图像处理、信息管理等功能。

允许用户在不理解的复杂科学理论的同时通过简单的计算机操作,改变一些参数和进行颜色调整来生成分形图形,并且进行相关图形的存储以及其他功能。

关键词:分形理论;分形艺术;分形算法;Julia集;MandelbrotAbstractFractal is developed in recent two hundred and thirty years before a new science,fractal theory can be further divided into rules and irregular fractal,irregular fractal mainly describe simple geometric objects and the properties of nonlinear system is not smooth and irregular geometrical form,as an effective tool can be used to describe a lot of scientific phenomena,it has been widely used in many fields such as computer science,and there were very good in their respective areas the development of the theory,and on the practice of artistic also have very good development,greatly widened people's horizons,deepen people's understanding of science and art.The graduation design,the purpose is to create a platform based on MATLAB,simple,easy to user operation fractal graph software,it should conform to the classic fractal graph system,has the function of general fractal figure meet certain image processing,information management,etc. Allows the user to do not understand the complex science theory at the same time,through a simple computer operation,color changing some parameters and adjust the afterlife composition form graphics,and related graphics storage,and other functions.Key words: Fractal theory; Fractal art; Fractal algorithm; Julia set; Mandelbrot目录1. 绪论 (4)1.1 研究背景 (4)1.2 研究目的和意义 (4)1.3 国内外相关课题的研究现状 (5)1.4 相关技术介绍 (6)1.4.1 MATLAB平台的选取 (6)1.4.2 关于MATLAB的GUI (6)1.5 论文组织结构 (7)2. 系统可行性分析 (8)2.1 经济可行性 (8)2.2 技术可行性 (8)2.3 社会实践可行性 (8)3. 系统需求分析 (10)3.1 系统功能结构分析 (10)3.2 分形算法原理介绍 (10)4. 系统设计 (12)4.1 系统运行界面设计 (12)4.2 软件运行环境及功能的具体设计 (12)5.系统实现 (15)5.1 分形图绘制算法的实现 (15)5.2 系统功能模块的实现 (16)5.2.1界面功能介绍 (16)5.2.2 算法功能实现 (17)5.3 系统交互模式的实现 (21)6.系统测试 (23)6.1 系统测试的目的和说明 (23)6.2 系统测试结果及不足 (27)7.总结 (28)参考文献: (29)致谢.............................................................................................. 错误!未定义书签。

基于MATLAB实现分形图形的绘制论文

基于MATLAB实现分形图形的绘制论文

目录前言 (1)第一章 MATLAB介绍 (2)1.1 MATLAB简介 (2)1.2 MATLAB语言 (2)1.2.1 创建向量、向量元素的访问: (2)1.2.2 创建矩阵、矩阵元素的访问 (3)1.2.3 流程控制 (4)1.3 MATLAB语言的传统优点 (5)第二章分形入门知识 (6)2.1 分形理论 (6)2.2 分形几何观及其应用 (7)第三章 Koch雪花的绘制 (7)3.1 von Koch曲线简介 (8)3.2 Koch雪花算法设计 (8)第四章 Frac_tree绘制 (11)第五章 Mandelbort集的绘制 (12)5.1 Mandelbort集简介 (13)5.2 Mandelbort集算法设计 (13)第六章 Julia集的绘制 (17)6.1 Julia集简介 (18)6.2 Julia集的算法设计 (18)6.3 Julia集与Mandelbort集 (20)第七章花篮簇的绘制 (22)总结 (23)主要参考文献: (23)前言分形是描述不规则几何形态的有力工具。

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

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

大自然向人类展示其美丽多变形态的同时,也提出了难以回答的询问:怎样描述复杂的自然表象?恰恰是分形几何学,它把自然形态看作是具有无限嵌套层次的精细结构,并且在不同的尺度下保持某种相似的属性,于是在变换与迭代中得到描述自然形态的有效方法。

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

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

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

如何进行图像分割的Matlab实现

如何进行图像分割的Matlab实现

如何进行图像分割的Matlab实现引言:图像分割是计算机视觉领域的一项基础技术,它将图像中的像素点分为不同的区域,使得具有相似特征的像素被聚类到一起。

在图像分析、目标检测、图像处理等任务中,图像分割起着至关重要的作用。

本文将介绍如何使用Matlab实现图像分割算法,包括传统的阈值分割、基于区域的分割以及基于深度学习的分割等。

一、传统的阈值分割1.1 简介阈值分割是最简单和常用的图像分割方法之一,它根据像素的灰度值与阈值的比较结果将像素分为两类:前景和背景。

在Matlab中,可以使用函数`im2bw`实现二值化分割任务。

1.2 实现步骤(1)加载图像:使用`imread`函数读取待分割的图像,并将其转换为灰度图像。

(2)确定阈值:根据图像的灰度直方图,可以通过分析波峰和波谷来确定一个适合的阈值。

(3)二值化分割:使用`im2bw`函数将灰度图像二值化,得到分割后的图像。

(4)结果显示:使用`imshow`函数将原图像和分割结果进行显示。

二、基于区域的分割2.1 简介基于区域的分割方法将图像划分为具有一定连续性和相似性质的区域,其基本思想是将图像中相似的像素组成区域,并对区域进行合并或分裂,以达到分割的目的。

2.2 实现步骤(1)加载图像:同样使用`imread`函数读取待分割的图像。

(2)图像预处理:可选的预处理步骤包括噪声去除、图像增强等,以提供更好的分割效果。

(3)区域生长:选择一个适当的种子点作为起始点,在附近的像素中根据一定的准则来判断是否属于同一区域,并逐步生长扩展区域,直至满足停止准则。

(4)结果显示:使用`imshow`函数将原图像和分割结果进行显示。

三、基于深度学习的分割3.1 简介基于深度学习的分割方法是近年来发展起来的一种高效且准确的分割技术,主要基于深度卷积神经网络(CNN)和全卷积网络(FCN)。

深度学习模型通过学习大量标注的图像,能够学习到图像的高级特征,从而实现更准确的图像分割。

几个分形的matlab实现

几个分形的matlab实现

几个分形的matlab 实现摘要:给出几个分形的实例,并用matlab 编程实现方便更好的理解分形,欣赏其带来的数学美感关键字:Koch 曲线 实验 图像一、问题描述:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下图1在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch 分形曲线。

二、算法分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程。

图1中,设1P 和5P 分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点2P ,3P ,4P 。

显然2P 位于线段三分之一处,4P 位于线段三分之二处,3P 点的位置可看成是由4P 点以2P 点为轴心,逆时针旋转600而得。

旋转由正交矩阵 ⎪⎪⎪⎪⎭⎫ ⎝⎛-=)3cos()3sin()3sin()3cos(ππππA 实现。

算法根据初始数据(1P 和5P 点的坐标),产生图1中5个结点的坐标。

结点的坐标数组形成一个25⨯矩阵,矩阵的第一行为1P 的坐标,第二行为2P 的坐标……,第五行为5P 的坐标。

矩阵的第一列元素分别为5个结点的x 坐标,第二列元素分别为5个结点的y 坐标。

进一步考虑Koch 曲线形成过程中结点数目的变化规律。

设第k 次迭代产生的结点数为k n ,第1+k 次迭代产生的结点数为1+k n ,则k n 和1+k n 中间的递推关系为341-=+k k n n 。

三、实验程序及注释:p=[0 0;10 0]; %P为初始两个点的坐标,第一列为x坐标,第二列为y坐标n=2; %n为结点数A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %旋转矩阵for k=1:4d=diff(p)/3; %diff计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d就计算出每个向量长度的三分之一,与题中将线段三等分对应 m=4*n-3; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(5:4:m,:)=p(2:n,:); %迭代后处于4k+1位置上的点的坐标为迭代前的相应坐标 p(2:4:m,:)=q+d; %用向量方法计算迭代后处于4k+2位置上的点的坐标p(3:4:m,:)=q+d+d*A'; %用向量方法计算迭代后处于4k+3位置上的点的坐标p(4:4:m,:)=q+2*d; %用向量方法计算迭代后处于4k位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])四、实验数据记录:由第三部分的程序,可得到如下的Koch分形曲线:图2五、注记:1.参照实验方法,可绘制如下生成元的Koch 分形曲线:图3此时,旋转矩阵为:⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎭⎫ ⎝⎛-=0110)2cos()2sin()2sin()2cos(ππππA 程序和曲线如下:p=[0 0;10 0]; %P 为初始两个点的坐标,第一列为x 坐标,第二列为y 坐标n=2; %n 为结点数A=[0 -1;1 0]; %旋转矩阵for k=1:4d=diff(p)/3; %diff 计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d 就计算出每个向量长度的三分之一,与题中将线段三等分对应 m=5*n-4; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(6:5:m,:)=p(2:n,:); %迭代后处于5k+1位置上的点的坐标为迭代前的相应坐标 p(2:5:m,:)=q+d; %用向量方法计算迭代后处于5k+2位置上的点的坐标 p(3:5:m,:)=q+d+d*A'; %用向量方法计算迭代后处于5k+3位置上的点的坐标 p(4:5:m,:)=q+2*d+d*A'; %用向量方法计算迭代后处于5k+4位置上的点的坐标 p(5:5:m,:)=q+2*d; %用向量方法计算迭代后处于5k 位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])图4由于中间三分之一部分是一个正方形时,有很多连接的部分。

MATLAB如何画分段函数的图像

MATLAB如何画分段函数的图像

MATLAB如何画分段函数的图像通常要⽤MATLAB画分段函数图像的话,总要分段去画⾮常⿇烦,还需要hold on,现在教你⼀种简单化分段函数的⽅法,让你⼀下⼦知道这个⽅法的魅⼒!数学软件Matlab R2019b for Linux 64位中⽂最新正式版(附安装⽅法+镜像)类型:编程其它⼤⼩:126MB语⾔:简体中⽂时间:2019-10-01查看详情Matlab R2018b Win64位中⽂特别版(附许可⽂件+安装密钥+激活⽅法)类型:编程其它⼤⼩:12.0GB语⾔:简体中⽂时间:2018-09-19查看详情步骤如下:第⼀步⽐如我们要画这样⼀个分段函数图像“-4<x<4;y=3*x;4<=x<12;y=20;12<=x<18;y=-5x+2;”,如下图所⽰:第⼆步我们先⽤matlab表达出来,y=(3*x).*(x>=-4&x<4) + 20*(x>=4&x<12)+(-5*x+2).*(x>12&x<=18),如下图所⽰:第三步输⼊x=-4:0.1:18,这个x的范围也是分段函数x的条件范围,如下图所⽰:第四步m脚本输⼊“x=-4:0.1:18y=(3*x).*(x>=-4&x<4) + 20*(x>=4&x<12)+(-5*x+2).*(x>12&x<=18)plot(x,y)”代码,如下图所⽰:第五步运⾏脚本,可以看到已经画出了分段函数图像,主要是先⽤matlab表⽰出分段函数,然后使⽤plot画图就可以,如下图所⽰:相关阅读:。

几个分形的matlab实现(可编辑修改word版)

几个分形的matlab实现(可编辑修改word版)

3 几个分形的matlab 实现摘要:给出几个分形的实例,并用 matlab 编程实现方便更好的理解分形,欣赏其带来的数学美感关键字:Koch 曲线 实验 图像一、问题描述:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成ft 丘形图形如下图1在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch 分形曲线。

二、算法分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程。

图1中,设 P 1 和 P 5 分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点 P 2 , P 3 , P 4 。

显然 P 2 位于线段三分之一处, P 4 位于线段三分之二处, P 3 点的位置可看成是由 P 4 点以 P 2 点为轴心,逆时针旋转60 而得。

旋转由正交矩阵 ⎛⎫ cos( ) A = - sin( ) ⎪ 3 ⎪⎪实现。

sin( ) ⎝ cos( ) ⎪ ⎭ 算法根据初始数据( P 1 和 P 5 点的坐标),产生图1中5个结点的坐标。

结点的坐标数组形成一个5 ⨯ 2 矩阵,矩阵的第一行为 P 1 的坐标,第二行为 P 2 的坐标……,第五行为 P 5 的 坐标。

矩阵的第一列元素分别为5个结点的 x 坐标,第二列元素分别为5个结点的 y 坐标。

进一步考虑Koch 曲线形成过程中结点数目的变化规律。

设第 k 次迭代产生的结点数为 n k ,第 k + 1次迭代产生的结点数为 n k +1 ,则 n k 和 n k +1 中间的递推关系为 n k +1 = 4n k - 3 。

3 3三、实验程序及注释:p=[0 0;10 0]; %P为初始两个点的坐标,第一列为x坐标,第二列为y坐标n=2; %n为结点数A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %旋转矩阵for k=1:4d=diff(p)/3; %diff计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d就计算出每个向量长度的三分之一,与题中将线段三等分对应m=4*n-3; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(5:4:m,:)=p(2:n,:); %迭代后处于4k+1位置上的点的坐标为迭代前的相应坐标p(2:4:m,:)=q+d; %用向量方法计算迭代后处于4k+2位置上的点的坐标p(3:4:m,:)=q+d+d*A'; %用向量方法计算迭代后处于4k+3位置上的点的坐标p(4:4:m,:)=q+2*d; %用向量方法计算迭代后处于4k位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])四、实验数据记录:由第三部分的程序,可得到如下的Koch分形曲线:图2五、注记:1.参照实验方法,可绘制如下生成元的Koch 分形曲线:此时,旋转矩阵为:图3 ⎛⎫ cos(2) -sin( ) ⎪2⎛0-1⎫A = ⎪= ⎪1 0程序和曲线如下:sin( )⎝ 2cos( ) ⎪⎝⎭2 ⎭p=[0 0;10 0]; %P为初始两个点的坐标,第一列为x坐标,第二列为y坐标n=2; %n为结点数A=[0 -1;1 0]; %旋转矩阵for k=1:4d=diff(p)/3; %diff计算相邻两个点的坐标之差,得到相邻两点确定的向量%则d就计算出每个向量长度的三分之一,与题中将线段三等分对应m=5*n-4; %迭代公式q=p(1:n-1,:); %以原点为起点,前n-1个点的坐标为终点形成向量p(6:5:m,:)=p(2:n,:); %迭代后处于5k+1位置上的点的坐标为迭代前的相应坐标p(2:5:m,:)=q+d; %用向量方法计算迭代后处于5k+2位置上的点的坐标p(3:5:m,:)=q+d+d*A'; %用向量方法计算迭代后处于5k+3位置上的点的坐标p(4:5:m,:)=q+2*d+d*A'; %用向量方法计算迭代后处于5k+4位置上的点的坐标p(5:5:m,:)=q+2*d; %用向量方法计算迭代后处于5k位置上的点的坐标n=m; %迭代后新的结点数目endplot(p(:,1),p(:,2)) %绘出每相邻两个点的连线axis([0 10 0 10])图4由于中间三分之一部分是一个正方形时,有很多连接的部分。

浅析MATLAB环境下分形图形的生成

浅析MATLAB环境下分形图形的生成

浅析MATLAB环境下分形图形的生成
马洪强
【期刊名称】《《上海视觉》》
【年(卷),期】2017(000)002
【摘要】分形理论作为新兴的数学分支,具有十分广泛的应用前景。

用计算机绘制的分形图形,其应用价值具有现实意义。

本文以Koch曲线为例,阐述递归算法的分形图形生成的基本步骤,列举了经典分形实例,通过举例来说明MATLAB环境下向量化程序分形实现,并设计出向量式随机分形程序,使得分形图形富有变化。

【总页数】7页(P17-23)
【作者】马洪强
【作者单位】[1]上海视觉艺术学院
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.Matlab下仿真的可视化设计和可执行程序的生成研究 [J], 余斌;唐建国
2.DOS环境下Foxpro菜单生成器浅析 [J], 徐盛岩
3.MATLAB环境下数据驱动故障检测工具箱设计 [J], 郭锦平;边若鹏
4.抗血管生成药物Endostantin作用下实体肿瘤血管生成的数值模拟:考虑基质力学环境及血管生成抑素的影响 [J], 蔡彦;吴洁;古娜;张洪一;曹金凤;许世雄;龙泉;柯林斯
5.新媒介环境下的“网络赋名”与“官方命名”——场域视域下的舆论生成分析[J], 高宪春
因版权原因,仅展示原文概要,查看原文内容请购买。

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