利用分形条件模拟和流线模型预测剩余油气饱和度分布

利用分形条件模拟和流线模型预测剩余油气饱和度分布
利用分形条件模拟和流线模型预测剩余油气饱和度分布

几个分形的matlab实现

几个分形得matlab实现 摘要:给出几个分形得实例,并用matlab编程实现方便更好得理解分形,欣赏其带来得数学美感 关键字:Koch曲线实验图像 一、问题描述: 从一条直线段开始,将线段中间得三分之一部分用一个等边三角形得两边代替,形成山丘形图形如下 ?图1 在新得图形中,又将图中每一直线段中间得三分之一部分都用一个等边三角形得两条边代替,再次形成新得图形如此迭代,形成Koch分形曲线。 二、算法分析: 考虑由直线段(2个点)产生第一个图形(5个点)得过程。图1中,设与分别为原始直线段得两个端点,现需要在直线段得中间依次插入三个点,,。显然位于线段三分之一处,位于线段三分 之二处,点得位置可瞧成就是由点以点为轴心,逆时针旋转600而得。旋转由正交矩阵 实现。 算法根据初始数据(与点得坐标),产生图1中5个结点得坐标、结点得坐标数组形成一个矩阵,矩阵得第一行为得坐标,第二行为得坐标……,第五行为得坐标。矩阵得第一列元素分别为5个结点得坐标,第二列元素分别为5个结点得坐标。 进一步考虑Koch曲线形成过程中结点数目得变化规律。设第次迭代产生得结点数为,第次迭代产生得结点数为,则与中间得递推关系为。 三、实验程序及注释: 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:4 d=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; %迭代后新得结点数目 end plot(p(:,1),p(:,2)) %绘出每相邻两个点得连线 axis([0 10 0 10]) 四、实验数据记录: 由第三部分得程序,可得到如下得Koch分形曲线:

Matlab实验报告:分形迭代

数学实验报告:分形迭代 练习1 1.实验目的:绘制分形图案并分析其特点。 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 equal else a=(2*p+q)/3; % 求出从p 到q 的1/3 处端点a b=(p+2*q)/3; % 求出从p 到q 的2/3 处端点b c=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');% 填充三角形abc hold on; axis equal else a1=(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为迭代次数

股票市场的分形特征和股票价格的FIGARCH模型研究

股票市场的分形特征和股票价格的FIGARCH模型研究 股票市场投资的目的是获取最大投资收益,然而收益与风险相伴,在收益与风险之间决策常常是不容易的。传统的股票投资理论认为股票市场是有效的,均衡的,收益是风险的线性函数,收益的波动符合布朗运动,收益的分布是独立同分布的,方差和均值是稳定的。实际情况却是股票市场影响因素以及各因素之间相互作用关系复杂,受投资者个人及群体心理因素影响明显,股票的波动以及收益与风险的关系常常是非线性的,非均衡的,收益的方差和均值是自相关的、不稳定的,收益的波动符合分形布朗运动,表现出分形和混沌的特征。本文分析了股票市场的波动的非线性、非均衡、分形和混沌特征,建立并检验了几种股票的分形差分异方差时间序列模型。 第一章回顾了股票定价理论的发展过程,介绍了九种在不同阶段具有代表性的股票定价理论,为把握股票定价理论的发展趋势,为以后各章的研究奠定基础。第二章分析了股票市场波动的一般特征和非线性非均衡特征,分析了股票投资收益和风险的影响因素,提出“虚拟性”、“风险性”、“流动性”和“投机性”是股票市场的核心特征。提出股票市场是远离平衡的、具有分形特征的非线性系统。投机是股票市场存在的前提和股票市场的天性。 第二章分析了有效市场理论产生的背景,就有效市场理论成立的基本假设进行了检验,提出股票价格收益是不稳定的随机序列,收益分布不是正态分布,股票价格收益表现出非性,序列自相关性,异方差性。提出有效市场理论失灵的主要原因是投资者的非理性行为,信息反映的羊群效应,投资者存在反应过度和反应不足现象,股票市场的非均衡特征和股票市场的非线性特征。第四章分析并检验了股票市场的分形混沌特征,推导了投资函数,计算了表征股票市场分形特征的Hurst指数,关联维和最大Lyapunov指数,分析了股票价格的自相似性、长期记忆和循环周期,分析了股票价格的波动对初始条件的敏感性,提出中国股票市场具有混沌分形的特性,用传统的方差法度量股票风险是无效的,必须使用混沌分析能够理论来刻画股票收益的风险,建立收益模型。第五章介绍了股票价格的分形时间序列模型,介绍了检验时间序列平稳性的方差分析和单位根检验方法以及非平稳的处理方法,ARFIMA,GARCH和FIGARCH模型的建模方法和股票市场的分形特征和股票价格的FIGARCll模型叭

分形树__Matlab

%这是一个生成树的主函数,它的输入分别为每叉树枝的缩短比、树枝的偏角、生长次数. %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %注意:把这些程序全部保存在名为tree的M文件中再运行!!!!!!!! %%小提示:若用做函数,请将虚线框内语句删去。 function f=tree(w,dtheata,NN) %%%--------------------虚线框--------------------%%% clear;clc;clf;w=0.8;dtheata=pi/6;NN=8;%建议生长次数NN不要超过10 %%%--------------------虚线框--------------------%%% n=2^NN;%从主枝算起,共需生成2^NN个树枝 for NNK=1:n x1=0; y1=0; r1=1; theata1=pi/2; dataway=ten2twoN(NNK,NN); %把每一个树枝的编号转化为一个NN位的二进制数 for NNL=1:NN if dataway(NNL)==0 [x2,y2,r2,theata2]=antmoveleft(x1,y1,r1,theata1,w,dtheata);%若路径数组上对应的数字为0,则向左生长 x1=x2; y1=y2; r1=r2; theata1=theata2; hold on %pause(eps) else [x2,y2,r2,theata2]=antmoveright(x1,y1,r1,theata1,w,dtheata);%否则,数字为1,向右生长 x1=x2; y1=y2; r1=r2; theata1=theata2; hold on %pause(eps) end end end hold off %--------------------------------------------------------------------------

基于分形模型的分布式虚拟现实系统的应用研究

※编程技术应用实践 应用实践※※ 基于分形模型的分布式虚拟现实系统的应用研究 刘鹏 (太原工业学院) 【摘要】比较深入地分析和说明了开发基于分形模型的分布式虚拟现实系统的可行性及其应用价值,并给出了详细的设计方案。 【关键词】分形模型;分布式虚拟现实系统;设计方案 1引言 在分布式虚拟现实系统的分析和设计中,特别关注交互性,这就要求开发出的系统必须具有较快的响应速度和较大的吞吐量【1】。而且,VR系统要求很强的实时性,图形更新速率至少要求16桢/s,图形客体行为反映的滞后要低于0.1s。随着技术的发展,对象的细节层次越来越复杂,就目前计算机图形学的水平而言,只要有足够的时间,就能生成准确度相当高的像照片一样的逼真图像。然而这种提高真实感的方法是采用增加物体多边形来获得,从而使计算复杂,绘图速度大大降低,无法满足DVR系统的需要【2】。 2DVR系统及其特点简介 DVR是指基于网络的虚拟环境,在这个环境中,位于不同物理位置的多个用户和多个 虚拟环境通过网络相连接,并共享信息。它是网络和虚拟现实结合的产物,是一个支持多人通过网络实时进行交互的软件系统,每个用户在一个VR环境中通过计算机与其他用户进行交互。DVR系统一般由显示器,通信和控制设备,处理系统,数据网络四个基本部件组成【3】。 DVR追求良好的交互性,这就使得其对系统的响应速度和吞吐量有较高的要求。为了获得较好的交互反应时间,系统必须由相当少的软件层组成,在客户和服务器之间传递的数据量必须足够小。吞吐量受客户和服务器的处理速度,数据传输率的影响。在远程服务器上的数据必须从服务器进程传递到客户进程,经过两个计算机上若干个软件层。软件层的吞吐量与网络的吞吐量一样重要【1】。与此同时,DVR还要求系统具有良好的实时性,保持较高的图形刷新速率等。 3分形模型及其在DVR系统设计中的应用价值 3.1分形模型概述 正如分形之父Mandelbrot所说的那样,分形是大自然的几何学。分形几何学是描述复杂自然形状及其形成机制的有力手段,为人类构建自然图形提供了一种新的科学基础,形成了一种全新的自然图像——生成论的自然图像。分形几何学能够借助迭代模拟自然界的复杂形状,这正是分形模型的独特魅力所在【4】。目前,发展较为成熟的分形几何模型有L-System(L-系统)与IFS(Iterated Function System,迭代函数系统)。它们都能以极少的存储数据来生成逼真度相当高的复杂自然形状。而且,对于任何自然物形态,都可以通过计算机把它们转换成IFS编码,即数据模型【4】。因此,分形模型具有极其广阔的应用前景。 3.2分形模型在DVR系统设计中的应用价值 传统DVR系统中的几何模型一般用多边形来表示,通常具有两个信息:一个包含点的位置信息,另一个是点的拓扑结构信息,用来说明这些点之间的连接【2】。因此,在生成实体时通常要求较大的数据量,对网络的带宽要求很高。而且,在生成较为复杂的实体模型时,限于大量的数据传输和计算,使得图形的 1

分形插值算法和MATLAB实验

一,分形插值算法 ——分形图的递归算法1,分形的定义 分形(Fractal)一词,是法国人B.B.Mandelbrot 创造出来的,其原意包含了不规则、支离破碎等意思。Mandelbrot 基于对不规则的几何对象长期地、系统地研究,于1973 年提出了分维数和分形几何的设想。分形几何是一门以非规则几何形状为研究对象的几何学,用以描述自然界中普遍存在着的不规则对象。分形几何有其显明的特征,一是自相似性;分形作为一个数学集合, 其内部具有精细结构, 即在所有比例尺度上其组成部分应包含整体, 而且彼此是相似的。其定义有如下两种描述: 定义 1如果一个集合在欧式空间中的 Hausdorff 维数H D 恒大于其拓扑维数 r D ,则称该集合为分形集,简称分形。 定义 2组成部分以某种方式与整体相似的形体叫分形。 对于定义 1 的理解需要一定的数学基础,不仅要知道什么是Hausdorff 维数,而且要知道什么是拓扑维数,看起来很抽象,也不容易推广。定义 2 比较笼统的说明了自然界中的物质只要局部和局部或者局部和整体之间存在自相似性,那么这个物质就是分形。正是这一比较“模糊”的概念被人们普遍接受,同时也促进了分形的发展。 根据自相似性的程度,分形可分为有规分形和无规分形。有规分形是指具有严格的自相似的分形,比如,三分康托集,Koch 曲线。无规分形是指具有统计意义上的自相似性的分形,比如,曲折的海岸线,漂浮的云等。本文主要研究有规分形。

2. 分形图的递归算法 2.1 三分康托集 1883 年,德国数学家康托(G.Cantor)提出了如今广为人知的三分康托集。三分康托集是很容易构造的,然而,它却显示出许多最典型的分形特征。它是从单位区间出发,再由这个区间不断地去掉部分子区间的过程构造出来的(如图2.1)。 其详细构造过程是:第一步,把闭区间[0,1]平均分为三段,去掉中间的 1/3 部分段,则只剩下两个闭区间[0,1/3]和[2/3,1]。第二步,再将剩下的两个闭区间各自平均分为三段,同样去掉中间的区间段,这时剩下四段闭区间:[0,1/9],[2/9,1/3],[2/3,7/9]和[8/9,1]。第三步,重复删除每个小区间中间的 1/3 段。如此不断的分割下去,最后剩下的各个小区间段就构成了三分康托集。三分康托集的 Hausdorff 维数是0.6309。 图2.2 三分康托集的构造过程

Newton分形的原理及Matlab实现

龙源期刊网 https://www.360docs.net/doc/bc9714482.html, Newton分形的原理及Matlab实现 作者:张健徐聪全付勇智 来源:《电脑知识与技术》2009年第24期 摘要:详细推导了复平面上Newton迭代法的原理和计算公式,用MATLAB编制程序实现了Newton迭代算法,得到了一些奇异、绚丽的分形图形。对《数学实验》课程有一定的参考价值。 关键词:Newton迭代法;分形;Matlab;数学实验 中图分类号:TP312文献标识码:A文章编号:1009-3044(2009)24-6997-03 The Principles of Newton Fractal and it's Realization Using MATLAB ZHANG Jian, XU Cong-quan, FU Yong-zhi (Department of Basic Courses, Southwest Forestry College, Kunming 650224, China) Abstract: The Principles and formulas of Newton fractal was explained,fractal graphics of Newton iteration was created using Matlab. Key words: newton iteration; fractal; Matlab; mathematical experimental 分形是非线性科学的一个重要分支,应用于自然科学和社会科学的众多领域。其中,分形图形以其奇异、绚丽多彩的特点,广泛应用于纺织印染、广告设计、装潢设计、计算机美术教学 等领域[1]。 很多分形图形都是用迭代的方式实现的,Newton迭代法就是其中的一种。由Newton迭代 法产生的分形图形称为Newton分形[2]。很多文献都对Newton分形进行了介绍,但都没有详细的计算公式和算法说明,读者很难编制相应程序。本文详细介绍了复平面上Newton迭代法的原理和计算公式,设计了相应的实现算法,并用Matlab编制程序实现了Newton分形的绘制,生成了一些奇异、瑰丽的分形图形。

几个分形matlab实现

几个分形的matlab实现 摘要:给出几个分形的实例,并用matlab编程实现方便更好的理解分形,欣赏其带来的数学美感 关键字:Koch曲线实验图像 一、问题描述: 从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下 图1 在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch分形曲线。 二、算法分析: 考虑由直线段(2个点)产生第一个图形(5个点)的过程。图1中,设 1 P和 5 P分别为 原始直线段的两个端点,现需要在直线段的中间依次插入三个点 2 P, 3 P, 4 P。显然 2 P位 于线段三分之一处, 4 P位于线段三分之二处, 3 P点的位置可看成是由 4 P点以 2 P点为轴心,逆时针旋转600而得。旋转由正交矩阵 ?? ? ? ? ? ? ? - = ) 3 cos( ) 3 sin( ) 3 sin( ) 3 cos( π π π π A 实现。 算法根据初始数据( 1 P和 5 P点的坐标),产生图1中5个结点的坐标。结点的坐标数组形成一个2 5?矩阵,矩阵的第一行为 1 P的坐标,第二行为 2 P的坐标……,第五行为 5 P的坐标。矩阵的第一列元素分别为5个结点的x坐标,第二列元素分别为5个结点的y坐标。 进一步考虑Koch曲线形成过程中结点数目的变化规律。设第k次迭代产生的结点数为k n,第1 + k次迭代产生的结点数为 1+ k n,则 k n和 1+ k n中间的递推关系为3 4 1 - = +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:4 d=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; %迭代后新的结点数目 end plot(p(:,1),p(:,2)) %绘出每相邻两个点的连线 axis([0 10 0 10]) 四、实验数据记录: 由第三部分的程序,可得到如下的Koch分形曲线: 图2 五、注记: 1.参照实验方法,可绘制如下生成元的Koch 分形曲线:

分形统计模型的理论研究及其在地质学中的应用

第33卷 第2期1998年4月 SC IEN T I A GEOLO G I CA S I N I CA V o l .33N o.2 A p r .,1998 3地矿部“九五”基础研究重点项目《矿产定量预测的勘查评价新理论研究》和中国博士后科学基金项目资助。申 维,男,1957年2月生,博士后,数学地质专业。 1997210207收稿,1997209209改回,王桂凤编辑。 分形统计模型的理论研究及其在 地质学中的应用 3 申 维 赵鹏大 (中国地质大学数学地质研究所 武汉 430074) 摘 要 本文提出了一般分形模型和一般分维数的概念,认为许多地质模型是一般分形模型的特例,指出幂函数分布和帕累托分布是分形统计模型的数学基础,论证了幂函数分布在高端截尾条件下具有尺度不变的分形性质,根据非线性回归模型参数估计的方法,提出了求分维数的新方法,该方法具有许多优点。通过在计算机上产生随机数对分形统计模型进行模拟研究,以及通过实例说明分形统计模型应用的方法及步骤,并解释了分维数的实际意义。 关键词 分形统计模型 分维数 模拟研究 成矿预测 由于人类社会和自然界中广泛地存在无序、混乱、不规则和不光滑的复杂现象,传统的理论只能是简化或定性地刻画它们。分形理论的提出为揭示隐藏于混乱复杂现象中的精细结构和定量地刻画描述它们提供了理论基础。 分形理论创立于70年代中期,其研究对象为自然界和社会活动中广泛存在的无序(无规则)而具有自相似性的系统。分形论借助于自相似性原理洞察隐藏于混乱现象中的精细结构;为人们从局部认识整体,从有限认识无限提供新的方法论;为不同学科发现规律性提供崭新的语言和定量的描述;为现代科学技术提供新思想新方法。分形理论不但为复杂的现象提供了一种简便的定量描述工具,而且它是一种辩证的思想方法和认识方法:部分与整体有相似性是整个的相对缩影,含有整体的信息,因而人们可以通过认识部分来认识整体。 1 一般分形模型 设非线性模型 y =f (x ,Η )+Ε(1) 式中:x 为可观测的已知变量,可以是向量;y 为可观测的随机变量;Ε为不可观测具有零 均值和有限方差Ρ2>0独立同分布F 的随机误差项(Ρ2未知);Η=(Η1,Η2,…,Ηp )′为未知参数,定义域为欧氏空间R p 上的一个子空间(;f 称为模型函数,它的函数形式已知,但含有未知参数Η。如果f 是Η的线性函数,则(1)式化为线性模型,否则就称为非线性模型。

几个分形的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:4 d=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; %迭代后新的结点数目 end plot(p(:,1),p(:,2)) %绘出每相邻两个点的连线 axis([0 10 0 10]) 四、实验数据记录: 由第三部分的程序,可得到如下的Koch分形曲线: 图2 五、注记: 1.参照实验方法,可绘制如下生成元的Koch 分形曲线: 图3

几个分形的matlab实现教学文案

几个分形的m a t l a b 实现

几个分形的matlab实现 摘要:给出几个分形的实例,并用matlab编程实现方便更好的理解分形,欣赏其带来的数学美感 关键字:Koch曲线实验图像 一、问题描述: 从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下 图1 在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch分形曲线。 二、算法分析: 考虑由直线段(2个点)产生第一个图形(5个点)的过程。图1中,设 1 P和5 P分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点 2 P,3 P, 4 P。显然 2 P位于线段三分之一处, 4 P位于线段三分之二处, 3 P点的位置可 看成是由 4 P点以 2 P点为轴心,逆时针旋转600而得。旋转由正交矩阵 ?? ? ? ? ? ? ? - = ) 3 cos( ) 3 sin( ) 3 sin( ) 3 cos( π π π π 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:4 d=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; %迭代后新的结点数目 end plot(p(:,1),p(:,2)) %绘出每相邻两个点的连线 axis([0 10 0 10]) 四、实验数据记录: 由第三部分的程序,可得到如下的Koch 分形曲线:

Mandelbrot集和Julia集的分形图之matlab实现

Mandelbrot集和Julia集的分形图之matlab实现 基于逃逸时间算法 1. Mandelbrot集 function Mandelbrot(res,iter,xc,yc,xoom) %Mandelbrot % res是目标分辨率,iter是循环次数,(xc,yc)是图像中心,xoom是放大倍数 x0=xc-2/xoom;x1=xc+2/xoom; y0=yc-2/xoom;y1=yc+2/xoom; x=linspace(x0,x1,res); y=linspace(y0,y1,res); [xx,yy]=meshgrid(x,y); z=xx+yy*1i; C=z; N=zeros(res,res); %初始化N,最终根据N,对各点进行染色 tic %显示tic和toc间的程序运行时间 for k=1:iter z=z.^2+C; %对空间上每点都进行迭代 N(abs(z)>4)=k; %逃逸半径为4,诺某点逃逸,记录逃逸时间k,未逃逸则时间为0 z(abs(z)>4)=0; C(abs(z)>4)=0; end imshow(N,[]); toc end >>Mandelbrot(512,100,0,0,1)

>>Mandelbrot(512,128,-1.478,0,300) 2.Julia集 function Julia(c,res,iter,xc,yc,xoom) %Julia集 %c为参数, res是目标分辨率,iter是循环次数,(xc,yc)是图像中心,xoom是放大倍数x0=xc-2/xoom;x1=xc+2/xoom; y0=yc-2/xoom;y1=yc+2/xoom; x=linspace(x0,x1,res); y=linspace(y0,y1,res); [xx,yy]=meshgrid(x,y); z=xx+yy*1i; N=zeros(res,res); C=c*ones(res,res); for k=1:iter z=z.^2+C; N(abs(z)>2)=k; C(abs(z)>2)=0;

Matlab实现 递归算法生成3维分形树ByLinking

Matlab实现递归算法生成3维分形树 注:此算法树根在侧面,需对坐标轴进行旋转便可得到上图效果 以下代码全部粘贴到一个M文件中命名为TreeByL即可运行 为方便网友研读代码加入了大量注释 同时愿与matlab程序爱好者进行交流:Linking508@https://www.360docs.net/doc/bc9714482.html, %%%%%%%%%%%%%%%%%%%%%%%%%%%% %Matlab实现递归算法生成3维分形树 %ByLinking %%%%%%%%%%%%%%%%%%%%%%%%%%%% function TreeByL L=15;%主干长 a=0; b=pi/3; r=0;%r=pi/5; %分支生成函数 makeBranch(0,0,0,L,a,b,r); % a在XOZ平面投影与X轴夹角b与Y轴的夹角r与主干的夹角 function makeBranch (x,y,z,L,a,b,r) B=pi/5;s1=1.5;s2=3;s3=1.2;%B枝干的倾斜度C主干的倾斜度s1细腻程度s2分支收缩速度s3主干收缩速度 % B=pi/5;s1=1.5;s2=2.4;s3=1.35; if L>s1 x1=x+L/s2*cos(a)*cos(r);

y1=y+L/s2*sin(a); z1=z+L/s2*cos(a)*sin(r); x1R=x1+L/s2*cos(a-b)*cos(r); y1R=y1+L/s2*sin(a-b); z1R=z1+L/s2*cos(a-b)*sin(r); x1L=x1+L/s2*cos(a+b)*cos(r); y1L=y1+L/s2*sin(a+b); z1L=z1+L/s2*cos(a+b)*sin(r); x1F=x1+L/s2*cos((a-b)*sin(a))*cos(r+atan(1/cos(a))); y1F=y1+L/s2*sin((a-b)*sin(a)); z1F=z1+L/s2*cos((a-b)*sin(a))*sin(r+atan(1/cos(a))); x1B=x1+L/s2*cos((a-b)*sin(a))*cos(r-atan(1/cos(a))); y1B=y1+L/s2*sin((a-b)*sin(a)); z1B=z1+L/s2*cos((a-b)*sin(a))*sin(r-atan(1/cos(a))); %------------------------------------------------------ x2=x+L/s2*cos(a)*cos(r); y2=y+L/s2*sin(a); z2=z+L/s2*cos(a)*sin(r); x2R=x2+L/s2*cos(a-b)*cos(r); y2R=y2+L/s2*sin(a-b); z2R=z2+L/s2*cos(a-b)*sin(r); x2L=x2+L/s2*cos(a+b)*cos(r); y2L=y2+L/s2*sin(a+b); z2L=z2+L/s2*cos(a+b)*sin(r); x2F=x2+L/s2*cos((a-b)*sin(a))*cos(r+atan(1/cos(a))); y2F=y2+L/s2*sin((a-b)*sin(a)); z2F=z2+L/s2*cos((a-b)*sin(a))*sin(r+atan(1/cos(a))); x2B=x2+L/s2*cos((a-b)*sin(a))*cos(r-atan(1/cos(a))); y2B=y2+L/s2*sin((a-b)*sin(a)); z2B=z2+L/s2*cos((a-b)*sin(a))*sin(r-atan(1/cos(a))); plot3([x,x2],[y,y2],[z,z2],'k');hold on;set(gcf,'color','w');grid on;view(pi/2,0);%axis off;xlabel('X Label');ylabel('Y Label');zlabel('Z Label'); set(gca,'xlim',[0,25],'ylim',[-15,15],'zlim',[-15,15]); plot3([x2,x2R],[y2,y2R],[z2,z2R],'g');hold on; plot3([x2,x2L],[y2,y2L],[z2,z2L],'g');hold on; plot3([x2,x2B],[y2,y2B],[z2,z2B],'g');hold on;

基于递归算法的分形图像MATLAB仿真文献综述

杭州电子科技大学信息工程学院毕业设计(论文)文献综述 毕业设计(论文)题目基于递归算法的分形图像仿真实现 文献综述题目分形理论及分形图形生成算法研究系通信工程 专业通信工程 姓名项睿 班级08093413 学号08934326 指导教师郭春生

分形理论及分形图形生成算法研究 20世纪70年代,自然科学的三大发明是混沌、耗散结构和分形。分形理论既可以说是现代数学的一个新分支,也可以说是一门有着古老历史渊源的学问。早在一百多年前,分形学的初始形式——分形几何学就受到了数学家们的关注,时至今日,分形学的发展已经突破最初集合理论的研究而广泛应用于各类学科和社会生产生活中。可以认为,分形学的创立已经成为一次科学革命,这也是分形理论得以产生和发展的重要原因[1]。 作为研究非线性科学的重要理论,分形引起了研究者的高度重视和兴趣。国内外许多学者从事这方面的研究,并且取得了一系列令人瞩目的成果。分形所涉及的学科领域相当广泛,从数学、物理学、气象学、生物学到图形学;从自然到社会;以及我们日常生活中所涉及的万事万物都存在着分形。当前分形理论的研究主要分三种类型:其一,分形理论的基础研究。其二,分形理论在实际应用中的研究。其三,分形图形的生成方法研究[2]。 随着计算机图形学的发展,分形理论与之结合产生了分形图形学。本文将对计算机对分形图形的仿真的算法、生成方式以及理论依据、研究历史等做一个简要概括,对现有的改方面研究成果做简单分析,并展望未来的发展前景。 一、分形理论的创始和发展 “分形”(fractal)一词由美籍法国数学家德尔布罗特(Benoit B.mandelbrot)教授在1975年首次提出,其源于拉丁文fractus,原意为“分数的,不规则的,破碎的”。我们通常以曼德尔布罗特发表在1967年《科学》杂志上的“英国的海岸线有多长·统计自相似性与分数维数”一文作为“分形”学科诞生的标志。分形之所以引起人们广泛的注意,主要有两个方面:一方面是由于在自然界中普遍存在的不规则现象,而分形作为“描述大自然”的几何学证明了其中有许多不规则现象就是“真是的分形”;另一方面,随着分形分析中的新工具的产生,尤其在材料、地理、经济等学科的成功应用,用于研究分形集的数学理论与方法有了巨大发展,也逐渐完善了分形理论自身体系[3]。 很长时间以来科学家们都想给“分形”一个严格的数学定义,但这些定义都难以适用于一般情形[4]。因此对于“分形”给出了一系列特征描述,如果集合F具有下面所有或大部分性质,则集合F是分形: 1.F具有精细的结构,即有任意小比例的不规则细节。 2.F是非常不规则的,无论他的局部或整体均无法用微积分或传统的几何语 言来描述。 3.通常F具有某种自相似或自仿真性质,可能是统计或者近似意义上的。

动力系统一些分形图像和matlab程序

研究生课程考核试卷 (适用于课程论文、提交报告) 科目:动力系统教师:舒永录 姓名:郑申海学号:20110602024 专业:计算数学类别:学术 上课时间:2012 年 3 月至2012 年 6 月 考生成绩: 卷面成绩平时成绩课程综合成绩 阅卷评语: 阅卷教师(签名) 重庆大学研究生院制

第一题Logistic 映射(15分) Figure1.6(P19) 绘图程序: ga=inline('a*x*(1-x)'); plot_N=100; iterate_max=200; result=[]; A=1:0.001:4; for a=A; x=0.5; for iterate=2:iterate_max x(iterate)=ga(a,x(iterate-1)); end result=[result;x((iterate_max-plot_N+1):iterate_max)]; end plot(A,result,'-') Figure1.7(P20) 注:这两个图是Figure1.6的局部放大图 第二题Henon映射初始条件(10分)

Figure2.3(P51) (a)(b) (a)、(b)对应的初始值分别是a=1.28、1.4 绘图程序: a=1.4;%a=1.28 b=-0.3; N=200; Iter=3; M=linspace(-2.5,2.5,500); M_f=[]; H=linspace(-2.5,2.5,500); H_f=[]; [X Y ]=meshgrid(M); plot(X,Y,'.k') hold on [Ii Jj]=size(X); R=zeros(Ii,Jj); for i=1:Ii for j=1:Jj xm=X(i,j); ym=Y(i,j); for n=1:N x=a-xm.*xm+b*ym; y=xm; xm=x; ym=y; end if xm

分形几何中一些经典图形的Matlab画法

分形几何中一些经典图形的Matlab画法 (1)Koch曲线程序koch.m function koch(a1,b1,a2,b2,n) %koch(0,0,9,0,3) %a1,b1,a2,b2为初始线段两端点坐标,n为迭代次数 a1=0;b1=0;a2=9;b2=0;n=3; %第i-1次迭代时由各条线段产生的新四条线段的五点横、纵坐标存储在数组A、B中[A,B]=sub_koch1(a1,b1,a2,b2); for i=1:n for j=1:length(A)/5; w=sub_koch2(A(1+5*(j-1):5*j),B(1+5*(j-1):5*j)); for k=1:4 [AA(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5*(k-1)+5),BB(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5*(k-1)+5)] =sub_koch1(w(k,1),w(k,2),w(k,3),w(k,4)); end end A=AA; B=BB; end plot(A,B) hold on axis equal %由以(ax,ay),(bx,by)为端点的线段生成新的中间三点坐标并把这五点横、纵坐标依次分别存%储在数组A,B中 function [A,B]=sub_koch1(ax,ay,bx,by) cx=ax+(bx-ax)/3; cy=ay+(by-ay)/3; ex=bx-(bx-ax)/3; ey=by-(by-ay)/3; L=sqrt((ex-cx).^2+(ey-cy).^2); alpha=atan((ey-cy)./(ex-cx)); if (ex-cx)<0 alpha=alpha+pi; end dx=cx+cos(alpha+pi/3)*L; dy=cy+sin(alpha+pi/3)*L; A=[ax,cx,dx,ex,bx]; B=[ay,cy,dy,ey,by];

几个分形的matlab实现

几个分形的ma tlab 实现 摘要:给出几个分形的实例,并用m at lab 编程实现方便更好的理解分形,欣赏其带来的 数学美感 关键字:Koch 曲线 实验 图像 一、问题描述: 从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下 ?图1 在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成K och 分形曲线. 二、算法分析: 考虑由直线段(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 坐标

相关文档
最新文档