旋转对称加速算法绘制Mandelbrot集和Julia集
基于Mandelbrot集的Julia集分形图案设计
研 究 Ma d lrt n e o 集分 形 图 的混 沌 轨道 提 供 了 可能 。 b
的 工具 , 迅 速地 渗 透 到 计 算 机 科 学 等 相 关 领 域 。在 分 形 并 几 何 中 , 多 重要 的 分 形 是 由 迭 代 产 生 的 , 单 的 迭 代 能 许 简
够 产 生 出精 致 复 杂 而 又 色 彩 斑 斓 的 分 型 图 案 ,Ma d l n e- bo 集 和 J l rt ui 就 是 其 中 常 见 的 两 种 , 被 广 泛 地 应 用 a集 并
0 引 言
分形理论是 2 O世 纪末 人类 在 自然 科 学 领 域 中取 得 的
重 大 突破 , 国数 学 家 Ma d lrt 1 7 美 n eb o 在 9 5年 创 立 了分 形
较 多 次 的迭 代 到 了无 穷 附 近 。如果 在 计算 机 屏 幕 上将 迭 代
区域 内各 种 不 同点 用 不 同颜 色 表示 出来 就得 到 一 个分 形 图
合 为 J l 集 , 同 的复 数 C 应着 不 同 的 J l 集 。 ui a 不 对 ui a 复解 析 映 射 - ) z 4 C M 集 图像 具 有 m一 1 厂 一 ( - 的 旋
转对 称 特 性 , 具 有 旋 转对 称性 质 的参 数 相 应 的 动 力 系 统 与
之 间 的动 力 学 特 性 保 持 旋 转对 称 特 性 , 此 , M 集 的 一 因 在 个 对 称 参 数 区 间上 挑 选 参 数 就 可 以 构 造 出与 该 映 射 相 应
的所 有 不 同动 力 系 统 的充 满 J l ui 图案 。这 些充 满 J l a集 ui a
其 中 , 为 第 次 迭 代后 的 复数 4y , z - iC为 复 数 := c
分形图形生成系统使用说明
《分形图形生成系统》使用说明书一、系统功能说明本系统的主界面如下:由上图可知,主界面分为三大部分:(1) 绘图区:这是您绘制图形、修改图形、编辑图形的场所。
(2)工具栏:其中包括1.画笔颜色工具栏,您可以通过该工具栏设置画笔的预定颜色(如:红、黑、白等等),除此外,你还可以按C按钮,弹出颜色对话框,选择你想设置的任意颜色。
2.填充颜色工具栏,您可以通过该工具栏设置填充使用的预定颜色(如:红、蓝、绿等等),除此外,你可以按C按钮,弹出颜色对话框,选择你想设置的任意颜色3.绘图工具栏,本工具栏含有九大工具:(1)选择,可以选定要进行编辑、删除等操作的分形图形。
(2)康托集,用于绘制指定递归层次Level的三分康托集的分形图(3)科赫曲线,用于绘制指定递归层次Level的科赫曲线(4) Sierpinski垫片,用于绘制指定递归层次Level的三角形垫片(5)Sierpinski方块,用于绘制递归层次Level的正方形垫片(6)Mandelbrot集,用于绘制指定区域内,指定W参数的Mandelbrot 分形图。
Z=Z^W+C(7)Julia集,用于绘制指定区域内,指定W参数,指定C参数的Julia集分形图Z=Z^w+c(8) 文字框,允许你输入文字,对分形图形备注等。
(9) 牛顿迭代法,用于绘制指定区域内,指定参数N的牛顿迭代解所得的分形图相应的方程为Z^N = 1;4.文件操作工具栏,本工具栏有以下功能(1)新建文档,你可以绘制一幅新的分形图(2)保存文件,您可以将您的艺术杰作保存起来(扩展名为.fra),(3)打开文件,您可以将您的保存的分形艺术杰作打开,以便继续您的分形艺术设计。
(4)删除图形,如果您对您的分形艺术图不满意,您可以先选定要删除的图形,按此按钮将其删去.(3)参数设置面板,在这里,您可以调整各项参数,绘制出你满意的分形图形(1)画笔区,您可以设置画笔的宽度(2)分形图形区,您可以设置四类分形图形(康托集、科赫曲线、Sierpinski垫片、Sierpinski方块)的递归层次Level(3)区域区,您可以设置Mandelbrot集/Julia集/牛顿迭代法三类分形图形的要显示的数学区域(Xmin<= x <= Xmax , Ymin <= y <=Ymax).(4)指数(w)区,您可以设置绘制Mandelbrot集/Julia集所需的指数(Z=Z^w+C) 中的复数W的实部、虚部.此外,绘制牛顿迭代法所需的指数(方程Z^N=1)中的复数N 的实部、虚部。
曼德勃罗特数据分析解释非线性时空混沌行为
曼德勃罗特数据分析解释非线性时空混沌行为曼德勃罗特(Mandelbrot)是一位数学家,他以他对分形几何学的贡献而闻名,尤其是他对曼德勃罗特集合的研究。
曼德勃罗特集合是一种在复平面上定义的集合,具有复杂的非线性和时空混沌行为。
本文将探讨曼德勃罗特数据的分析方法,并解释其非线性时空混沌行为。
在数据分析中,曼德勃罗特集合可以通过迭代算法来生成。
迭代算法基于复数迭代函数,将初始点在迭代过程中不断变换,并记录最终收敛或发散的结果。
根据迭代的次数和收敛或发散的结果,可以确定点是否属于曼德勃罗特集合。
曼德勃罗特集合的非线性行为表现在其迭代函数的复杂性上。
最常见的迭代函数是z = z^2 + c,其中z和c都是复数。
通过对初始点进行迭代,如果迭代结果在一定次数内不发散,则判定该点属于曼德勃罗特集合。
由于迭代函数的非线性特性,初始点的微小变化可能导致完全不同的迭代结果。
这种非线性行为在曼德勃罗特集合的图像中表现为分形结构,即图像具有自相似性。
曼德勃罗特集合的时空混沌行为意味着它在时间和空间上都表现出不可预测的特性。
在迭代过程中,初始点的微小变化会导致结果的巨大差异。
这种敏感依赖于初始条件的特性被称为混沌。
在曼德勃罗特集合中,混沌表现为集合的边界呈现出复杂的分形形状,且边界上的点密集分布。
这种分散和集中的特性使得曼德勃罗特集合成为一个非常复杂和吸引人的数学对象。
为了进一步分析曼德勃罗特数据,我们可以使用各种数学工具和技术。
首先,我们可以使用图像处理技术将迭代结果可视化。
通过分析图像的分形结构,我们可以了解集合的形状和边界的特性。
其次,我们可以计算曼德勃罗特集合的维度。
分形维度是一个描述自相似图形复杂程度的量度,通过计算集合的维度,我们可以了解曼德勃罗特集合的结构特性。
此外,我们还可以使用统计分析方法来研究曼德勃罗特集合的动力学行为,例如计算吸引子的维度和分析迭代结果的统计分布。
曼德勃罗特数据的分析不仅限于理论研究,还可以应用于实际问题。
Mandelbrot集和Julia集的分形图之matlab实现
Mandelbrot集和Julia集的分形图之matlab实现基于逃逸时间算法1. Mandelbrot集function Mandelbrot(res,iter,xc,yc,xoom) %Mandelbrot% 党$是目标分辨率,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:iterz = zJ2+C; %对空间上每点都进行迭代N(abs(z)>4)=k; %逃逸半径为4,诺某点逃逸,记录逃逸时间k,未逃逸则时间为0 z(abs(z)>4)=0;C(abs(z)>4)=0;endimshow(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>%。
为参数,皿$是目标分辨率,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.A2+C;N(abs(z)>2)=k;C(abs(z)>2)=0;z(abs(z)>2)=0; endcolormap jet ; image(x,y,N); axis square ; end上面两张图很好的反映分形的自相似性,右图是左图关于原点放大2000倍的情况。
分形几何
11
分形几何
12
分形几何
上图是曼德布洛特集最常见的表现形式,它给我
们提供了一种理解周围世界的粗糙程度的方式。
这一以数学家贝努瓦· 曼德布洛特命名的理论观察
到,不管是在物理、生物和经济等各种领域中的
许多复杂现象,都可以“以严格而有力的定量形
式逼近。”
13
分形几何
14
分形几何
15
分形几何
16
4
分形几何
2. 科赫曲线 给定线段AB,科赫曲线可以由以下步骤生成:
① 将线段分成三等份(AC,CD,DB); ② 以CD为底,向外(内外随意)画一个等边三角 形DMC ;
③ 将线段CD移去;
④ 分别对AC,CM,MD,DB重复1~3。
5
分形几何
6
分形几何
7
分形几何
3. 康托三分集合 取一条长度为1的直线段E0,将它三等分,去掉中间一 段,剩下两段记为E1,将剩下的两段再分别三等分,各 去掉中间一段,剩下更短的四段记为E2,……,将这样 的操作一直继续下去,直至无穷,由于在不断分割舍弃
|z2| 的等高线地图。
27
分形几何
f(z) = |z2|
28
分形几何
可以看到,这一操作让模的变化更剧烈了,
等高线变得更加密集了。外面浩瀚的蓝色空 间,就对应着那些模已经相当大了的复数。
29
分形几何
如果对上图中的每个点再加上某个数,比如 0.3 , 那么整个图会怎样变化呢?
对于模相同的复数来说,给实数部分加上 0.3 , 这对实数部分本来就较大的数影响会更大一些。 因此,上图将会变得更扁,整个图形会在水平方 向上拉伸。这也就是 f(z) = |z2 + 0.3| 的等高线地 形图。见下图(为便于观察,对图像进行了旋 转)。
Mandelbrot集以及他的局部放大数学实验报告
Mandelbrot集以及他的局部放大数学实验报告Mandelbrot集是二维复平面上的分形数集,1980前后发现,堪称人类认识数学存在的一个里程碑。
它是由一个简单复函数f(Z)=Z2+C迭代运算而形成的收敛数集(Z是迭代复变数,C是点位复常数),谁做这样的迭代运算都能得到形态一样的数集,见下图,这便是Mandelbrot集。
分形实在很美,于是读《分形理论与应用》尝试绘制Mandelbrot Set 曼德勃罗集。
naive idea: 空间上的分形和时间上的混沌有相似性。
一个动力方程是时间上的混沌,会收敛到吸引子,根据此画出的动力平面和参数平面是空间上的分形。
Mandelbrot Set1. 复迭代有一个关于z的复映射with 参数c如下:[公式]我们想要知道在参数平面中临界点[公式] 的轨迹是否有界,即对于一个c,根据迭代规则[公式]生成的序列[公式] ,则无界,[公式] 如果序列有界,则[公式]。
另外我们还想要知道在动力平面中[公式] ,不同z0 的值产生的轨迹是否有界,此时[公式] 如果序列有界,[公式] 如果序列无界。
2. Algorithm 逃逸时间算法为了绘制参数平面中的M集,我们需要确定每个c是否属于M 集,这里用到了逃逸时间算法。
逃逸准则对于一个复数[公式] , 模[公式] 。
我们claim:如果对于一个复数序列[公式] 有[公式] 则序列将逃逸到无穷大。
证明当[公式] , 则由[公式] 可知[公式] for [公式][公式]因此,我们得到[公式]那么在k次迭代后,我们得到[公式]序列趋于无穷如果[公式] ,可得[公式][公式] 因为[公式]那么对于任意[公式] , 假设[公式] , 我们有[公式] ,对于[公式]那么根据数学归纳法,我们知道序列趋于无穷。
z需要判断大于2来证明这是个无界序列吗?不用。
逃逸时间算法对于每个复参数平面上的点c,我们生成一个序列Z,怎么判断这个序列是否有界呢?根据逃逸准则,我们规定R为逃逸半径,在[公式] 里,如果[公式] ,判断有界(但其实也有可能这个序列是无界的),反之,这个序列无界。
分形公式大全
分形公式大全分形公式是一种表示分形特征的数学公式,它可以描述自相似、无限细节和复杂的结构。
下面是一些常见的分形公式及其相关参考内容。
1. Mandelbrot集公式:Mandelbrot集是分形几何中最著名的一个例子,它由下面的公式定义:Z(n+1) = Z(n)² + C其中,Z(n)是一个复数,C是一个常数。
这个公式对于不同的C值会产生不同的形状,形成了Mandelbrot集的分形特征。
关于Mandelbrot集的更多内容,可以参考书籍《The Fractal Geometry of Nature》 by Benoit B. Mandelbrot。
2. Julia集公式:Julia集是类似于Mandelbrot集的分形图形,它由下面的公式定义:Z(n+1) = Z(n)² + C其中,Z(n)和C都是复数。
当给定不同的C值时,Julia集的形状也会有所不同。
关于Julia集的更多内容,可以参考书籍《The Science of Fractal Images》by Heinz-Otto Peitgen和Dietmar Saupe。
3. 分岔图公式:分岔图是描述非线性动力系统中稳定性变化的一种分形图形。
它由下面的公式定义:f(x) = r * x * (1-x)其中,r是参数,x是状态变量。
当r的值在一定范围内变化时,分岔图会展现出分形的特征。
关于分岔图的更多内容,可以参考书籍《Chaos: Making a New Science》by James Gleick。
4. 树形分形公式:树形分形是一种描述树状结构的分形图形,它由下面的公式定义:x(n+1) = r * x(n) * cos(theta) - y(n) * sin(theta)y(n+1) = r * x(n) * sin(theta) + y(n) * cos(theta)其中,x(n)和y(n)是当前点的坐标,x(n+1)和y(n+1)是下一个点的坐标,r是缩放参数,theta是旋转角度。
经典的分形算法
经典的分形算法分形(Fractal)是一种数学概念,也是一种美丽而神秘的几何图形。
分形的核心思想是通过不断重复某个基本形状或规则,形成一个无限细节的自相似图案。
分形广泛应用于数学、物理、生物学、计算机图形等领域。
以下是几个经典的分形算法。
1. Mandelbrot集合算法:曼德勃罗集合是分形中的一个重要例子,其图像通常被称为“自由自似的”或“奇异的”。
该算法通过对复平面上的每个点进行迭代计算,并判断其是否属于Mandelbrot集合。
最终根据计算结果着色绘制出Mandelbrot集合的图像。
2. Julia集合算法:类似于Mandelbrot集合,Julia集合也是通过对复平面上的点进行迭代计算得到的,但不同的是,在计算过程中使用了一个常数参数c。
不同的c值可以得到不同形状的Julia集合,因此可以通过改变c值来生成不同的图像。
3. Barnsley蕨叶算法:Barnsley蕨叶算法是一种基于概率的分形生成算法,其原理是通过对基本形状进行变换和重复应用来生成蕨叶形状。
该算法通过设置一组变换矩阵和对应的概率权重来控制生成过程,不断的迭代应用这些变换,最终得到类似于蕨叶的图像。
4. L系统算法:L系统(L-system)是一种用于描述植物生长、细胞自动机和分形树等自然系统的形式语言。
L系统在分形生成中起到了重要的作用,通过迭代地应用规则替代字符,可以生成各种自然形态的图像,如树枝、蕨叶等。
5. Lorenz吸引子算法:Lorenz吸引子是混沌力学中的经典模型,描述了一个三维空间中的非线性动力学系统。
通过模拟Lorenz方程的演化过程,可以绘制出Lorenz吸引子的图像,该图像呈现出分形的特点。
这些分形算法不仅仅是数学上的抽象概念,也可以通过计算机图形来实现。
通过使用适当的迭代计算方法和图像渲染技术,可以生成出令人印象深刻的分形图像。
这些分形图像不仅具有美学价值,还具有哲学、科学和工程等领域的应用价值,例如在数据压缩、图像压缩、信号处理和模拟等方面。
Julia集和Mandelbrot集的反演变换
Julia集和Mandelbrot集的反演变换李劲菲;盛中平【摘要】The inversion problem between Mandelbrot and Julia sets is discussed in this paper. Providing the inversions of arbitrary point on extended complex plane to iterative functions, it obtains two kinds of conjugate function of the iterative function drawing Julia and Mandelbrot sets. The Julia and Mandelbrot sets for the two kinds of conjugate function, are exactly the inversion figures of original ones. Using the escape time algorithm, it draws the inversion figures of Julia and Mandelbrot sets.%论文讨论了居里叶集与曼德尔布罗特集的反演变换问题,通过扩充复平面上关于任意定点的反演变换,获得了两类共轭函数.使得这两类共轭函数的居里叶集与曼德尔布罗特集,恰好是原居里叶集与曼德尔布罗特集关于定点的反演变换,并运用逃逸时间算法绘制居里叶集和曼德尔布罗特集的反演图.【期刊名称】《图学学报》【年(卷),期】2012(033)003【总页数】4页(P125-128)【关键词】分形;反演图;逃逸时间算法;Julia集;Mandelbrot集【作者】李劲菲;盛中平【作者单位】大庆石油高级中学,黑龙江大庆163712;东北师范大学数学与统计学院,吉林长春130024【正文语种】中文【中图分类】TP301.5近年来,Mandelbrot集和Julia集以其美丽和复杂引起了各国科学家的关注和研究,并且利用计算机图形学绘制Mandelbrot集和Julia集。
复平面上最简单的二次函数迭代出最复杂美丽的图形
复平面上最简单的函数迭代出最复杂美丽的图形一、题目呈现在复平面上,一个简单的二次函数2()f x x c =+的迭代,就能生成最复杂美丽的分形图形。
对于同一复数c 的值(|c|<2,c ≠0),由点z 生成的分形,通常称为Julia 集;而对于同一点z ,根据不同的c 的值生成的分形称为Mandelbrot 集。
二、复分形的逃逸时间算法迭代原理对于任意点z ,由迭代()z f z →生成的迭代点列f(z)、f(f(z))、…的模可能趋于∞。
在这样的点z 处,分形图将会出现空洞。
为使分形图更加清晰漂亮,常采用逃逸时间算法。
设置一个区域(或称阈,通常设为圆|z|≤2),假设有一个充分大的整数N ,当点z 经过t 次(t ≤N)迭代后的点超出了这个区域A(我们就说点z 逃逸了),就记录下t 的值(逃逸的时间et);而如果点z 经过N 次迭代后的点仍未超出这个区域,我们就把这样点z 的组成的集合记为B 。
再利用逃逸时间关联着色参数的方法描绘出B 的边界图形,这便是逃逸时间算法的基本思想。
通俗的讲,经典M 集和J 集,就是将复平面内的圆|z|=2,通过逃逸时间算法下的迭代2z z +c →生成的复杂图形。
三、经典M 集和J 集的制作方法1.设置角度为弧度,作点z 、c 的横纵坐标:新建参数xz 、yz 、xc 、yc ;计算z 的模方||z||= xz*xz+yz*yz ;计算阈判断真值p=sgn(1-sgn(||z||-4));2.计算点z 在迭代2z z +c →下的象点Z 的横纵坐标:xZ=xz*xz-yz*yz+xc 、yZ=2xz*yz+yc ;3.构建点z的逃逸变换点Z',即若点z在逃逸阈内,则p=1,点z变换为点Z';否则p=0,点z停止于z:计算xZ'=xz+p*(xZ-xz)、yZ'=yz+p*(yZ-yz);4.为记录逃逸时间和逃逸半径,新建参数t0=0,计算t0+p;作点E(t0, ||z||);5.新建n=3,作{xz、yz、t0}→{xZ'、yZ'、t0+p}的深度为n的迭代,继而作点E的迭代象终点iE,并度量其横纵坐标et(逃逸时间)和em(逃逸半径);6.计算RGB着色参数:计算s=.05(et-log(.5abs(ln(em)))),R=sin(s),G=sin(3s),B=cos(2s);7.作点pixel,度量其横纵坐标x pixel、y pixel;对点pixel进行RGB着色并作颜色变换。
用加速逃逸时间算法构造Julia集图形
ac lrt eec p i lo tm yw ihc n t cssv rlq a rt ui e rca mae . ee p rme ts o h tteef in yi ceeai sa et v meag r h b hc o sr t eea u dai J l stf tli g s Th x ei n h wsta h fce c s i u c a a i
, , … ,
这个定义包括一大类具有 分数维 的分形集 , 忽略 了某些 维数 但 为整数 的分形集 。18 96年 M n e r 叉给 出了分形 的另一 个定 a dl o bt
义 “ atls hp a eo a ss l ew o nsm A f ca i asa em d f n i a t t hl i o e r p mir o h e
Ke wo d y rsቤተ መጻሕፍቲ ባይዱ
Fa tl E c p i lo tm J ai e rca s a et meagr h i ul st a
( )在大多数 令人感兴趣 的情况 下 , 5 F可以通过递 归 、 迭代
0 引 言
分形理论是非线性科学 研究 中十分活跃 的一个 分支 , 的 它 研究对象是 自然界和非线性系统 中出现的不光滑和不规则 的几 何形体 , 它发展极 其迅速 , 新成果层 出不穷 , 用计算机绘制 分形
经典Julia集和Mandelbrot集的几何画板画法
经典Julia 集和Mandelbrot 集的几何画板画法重庆市万州二中 向忠复平面内由二次函数2()f z z c =+构造的迭代点列 {}n z :10(),,1,2,3,n n z f z z z n −===能够生成分形图形。
当复数c 为定值(|c|<2,c ≠0)时,集合0{|{}}c n J z z =有界称为Julia 集;而对于复数z 为定值(通常z=0)时,集合{|{}}z n M c z =有界称为Mandelbrot 集。
在绘制Julia 集或Mandelbrot 集时,对于集合c J 或z M 外的元素,复数()n f z 的模可能趋于∞,这样在复平面相应位置处,图形将会出现空洞。
为使图形铺满整个画面,使分形图形更加清晰漂亮,我们常常采用逃逸时间算法作分形图。
设置一个区域A(通常设为圆|z|≤2),对于充分大的整数N ,当点0z 经过n+1次(n ≤N)迭代后的1n z +跳出了区域A(即1||2n z +>,我们就说点1n z +逃逸了),记录et 为n 的值;而如果点z 经过N 次迭代后的点仍未超出这个区域,就记录et 为N ,这个值et 就叫逃逸时间,而em=||et z 叫逃逸半径。
利用逃逸时间和逃逸半径关联着色参数对点0z 或c 着色,即能描绘出集合c J 或z M 的图形。
这就是逃逸时间算法的基本思想。
通俗的讲,经典Mandelbrot 集和Julia 集,就是将复平面内的圆|z|=2,通过逃逸时间算法下的迭代2z z +c →生成的复杂图形。
几何画板制作经典Mandelbrot 集和Julia 集的步骤:1.设置角度为弧度,作点z 、c 的横纵坐标:新建参数xz 、yz 、xc 、yc ;计算z 的模方||z||= xz*xz+yz*yz ;计算阈判断真值p=sgn(1-sgn(||z||-4));2.计算点z 在迭代2z z +c →下的象点Z 的横纵坐标:xZ=xz*xz-yz*yz+xc 、yZ=2xz*yz+yc;3.构建点z的逃逸变换点Z',即若点z在逃逸阈内,则p=1,点z变换为点Z';否则p=0,点z停止于z:计算Z'的横纵坐标:xZ'=xz+p*(xZ-xz)、yZ'=yz+p*(yZ-yz);4.为记录逃逸时间和逃逸半径,新建参数t0=0,计算t0+p;作点E(t0, ||z||);5.新建n=3,作{xz、yz、t0}→{xZ'、yZ'、t0+p}的深度为n的迭代,继而作点E的迭代象终点iE,并度量其横纵坐标et(逃逸时间)和em(逃逸半径);6.计算RGB着色参数:计算s=.05(et-log(.5abs(ln(em)))),R=sin(s),G=sin(3s),B=cos(2s);7.作点pixel,度量其横纵坐标x pixel、y pixel;对点pixel进行RGB着色并作颜色变换。
几何画板的深度迭代的用法大全
如何用好几何画板的深度迭代第一章:迭代的概念和操作迭代是几何画板中一个很有趣的功能,它相当于程序设计的递归算法。
通俗的讲就是用自身的结构来描述自身。
最典型的例子就是对阶乘运算可看作一下的定义:!(1)!(1)!(1)(2)!n n n n n n =⨯--=-⨯- 。
递归算法的特点是书写简单,容易理解,但是运算消耗内存较大。
我们先来了解下面这几个最基本的概念。
迭代:按一定的迭代规则,从原象到初象的反复映射过程。
原象:产生迭代序列的初始对象,通常称为“种子”。
初象:原象经过一系列变换操作而得到的象。
与原象是相对概念。
更具体一点,在代数学中,如计算数列1,3,5,7,9......的第n 项。
我们知道12n n a a -=+,所以迭代的规则就是后一项等于前一项加2。
以1作为原像,3作为初像,迭代一次后得到5,再迭代一次得到7,如此下去得到以下数值序列7 , 9,11, 13, 15......如图1.1所示。
在几何学中,迭代使一组对象产生一组新的对象。
图1.2中A 、B 、C 、D 、E 、F 、G ,各点相距1cm ,那么怎么由A 点和B 点得到其它各点呢?我们可以发现其中的规律就是从左到右,每一个点相当于前面一个点向右平移了1cm 。
所以我们以A 点作为原像,B 点作为初像,迭代一次得到B 点,二次为C 点,以此类推。
所以,迭代像就是迭代操作产生的象的序列,而迭代深度是指迭代的次数。
那么下面我们通过例子来进一步地了解迭代以及相关的概念。
几何画板中迭代的控制方式分为两种,一种是没有参数的迭代,另一种是带参数的迭代,我们称为深度迭代。
两者没有本质的不同,但前者需要手动改变迭代的深度,后者可通过修改参数的值来改变迭代深度。
我们先通过画圆的正n 边形这个例子来看一下它们的区别。
【例1】画圆的内接正7边形。
【分析】由正7边形的特征,我们知道,每一个点都相当于前面的点逆时,抓住这个规律,我们可以用迭代功能来解决。
数学与艺术:结合数学与艺术创作,培养学生创造力与美感
个人、学校和社会的责任和作用
个人:积极探索数学与艺术的新领域,培养自己的创造力和美感
社会:支持数学与艺术的跨界合作,推广相关文化活动,提高公众对数学与艺术的认识和欣赏水平
学校:提供多样化的数学与艺术课程,鼓励学生参与相关活动,培养他们的兴趣和才能
汇报人:XX
感谢观看
创造力与美感的关系
创造力是艺术的核心,美感是艺术的本质
创造力与美感相互促进,共同发展
通过数学教育培养学生的逻辑思维能力,有助于提高其创造力和美感
创造力和美感在个人和社会发展中具有重要价值
创造力与美感在数学与艺术中的体现
添加标题
添加标题
添加标题
添加标题
艺术中的色彩搭配和构图技巧可以培养学生的美感。
数学结构:通过数学结构培养学生的空间感和美感
数学与音乐:将数学与音乐结合,培养学生的节奏感和创造力
艺术课程中的数学元素
数学在艺术构图中的应用,如黄金分割、对称等
数学在色彩搭配中的应用,如色彩的对比、调和等
数学在立体造型中的应用,如几何形体、透视等
数学在动态变化中的应用,如节奏、韵律等
数学与艺术结合的创作活动
案例的启示与借鉴意义
数学与艺术结合有助于培养学生的创造力和美感,提高综合素质。
案例中的实践方式可以借鉴到其他学科教育中,促进跨学科融合。
教育工作者应该关注学生的创造力和美感发展,提供多样化的教育方式。
案例的启示是教育应该注重学生的全面发展,培养学生的创新思维和实践能力。
案例的局限性及改进方向
案例选择有限:目前的数学与艺术结合的实践案例数量较少,需要进一步挖掘和拓展。
数学与艺术的相互影响
数学对艺术的影响:数学中的比例、对称、几何图形等元素常被用于艺术创作,为艺术家提供灵感和指导。
四元数Julia分形及其Java编程
北方民族大学学士学位论文论文题目:四元数Julia分形及其Java编程院(部)名称:信息与计算科学学院学生姓名:王江林专业:信息与计算科学学号:20040328指导教师姓名:李水根教授论文提交时间:2008年5月25日论文答辩时间:2008年5月31日学位授予时间:北方民族大学教务处制四元数Julia分形及其Java编程摘要分形是近几十年发展起来的一门新的数学分支,它涉及的领域非常之广,有物理学、数学、化学、生物学、医学、地震学、地貌学、冶金学、材料学、哲学、经济学、社会学等等.分形的出现正在改变科学家观察自然界的传统方式,目前已对当今数学乃至整个科学界产生了巨大的影响.本文主要对分形几何中的四元数进行研究,运用四元数绘制二维和三维Mandelbrot集和Julia集,并用Java语言编程实现.先后介绍了分形的产生、Mandelbrot集和Julia集、四元数分形和用四元数绘制三维Mandelbrot集和Julia 集的数学理论,为软件设计奠定了理论基础,使软件开发具有可行性.软件设计采用面向对象的程序设计方法,用UML对软件进行建模,建立了用例图和类图,用例图用来说明所开发的软件具的功能,类图提供了指导对象定义和使用的一些主要规则.再根据所建立的UML模型生成整个软件.本文的重点是把分形理论用于计算机实践,设计出分形软件,本软件的主要功能是用四元数绘制Julia集,由于Mandelbrot集和Julia非常相似,也有紧密的内在联系;二维与三维在理论和程序实现上都相差甚小.所以同时也实现了二维和三维Mandelbrot集和Julia集的绘制.最后给出软件的运行结果,包括软件的运行效果和绘制的一些分形图形.关键词:分形,四元数,Julia集,Java程序设计IQuaternion Julia Fractal and Java Program DesignAbstractThe Fractal is a new mathematics branch which develops for several decades, it involve of realm very it is wide, there is physics, mathematics, chemistry, biology, medical science, earthquake learn, the geography learn, the metallurgy learn, the material learn, philosophy, economics, sociology etc….The emergence of the Fractal is change the traditional way of the observation nature of scientist and have already been go to the whole science field to produce huge influence nowadays to mathematics currently.This text mainly carries on a research to Fractal several quaternions in and the usage quaternion draws two dimensions and 3D Mandelbrot Set and Julia to gather and counteract the Java language plait distance a realization.Creation, Mandelbrot Set and Julia which successively introduced a Fractal gather, quaternion Fractal with draw the mathematics theories that 3D Mandelbrot Set and Julia gather with the quaternion, lay theories foundation for the software design, make the software development have a possibility.The software design adoption faces to the program design method of object, use UML to carry on setting up a mold to the software, built up use case diagram and class diagram, the use case diagram uses to explain the software develop to have of function, the class diagram provided instruction object definition and use of some main rules.According to the UML model build up born whole software.The textual point useds for the calculator fulfillment to the Fractal theories, design a Fractal software, the main function of this software draws a Julia Set with the quaternion, because the Mandelbrot Set is very similar to the Julia, also is close insidecontact;Two-dimensional and 3D in carrying out the theories and the procedure all differ very small.So also carried out two dimensions and 3D Mandelbrot Set and Julia to gather in the meantime of draw.Finally give circulate of a software result, include the movement effect of software with draw of some Fractal sketches.Key Words:Fractal,quaternion,Java program designII目录摘要 (I)前言 (1)第一章早期数学怪物与分形几何 (2)1 Von Koch(冯.科克)曲线 (2)2 Sierpinski(希尔宾斯基)三角形 (4)3 Cantor(康托)集 (5)4 Mandelbrot和他的分形几何 (6)第二章 Mandelbrot集与Julia集 (8)1 Mandelbrot集 (8)2 Julia集 (9)第三章四元数分形与四元数Mandelbrot集和Julia集 (11)1 四元数基本理论 (11)2 四元数Mandelbrot集和Julia集 (14)第四章分形软件设计 (15)1 用例图 (15)2 类图 (16)3 关键算法 (20)4 软件运行结果 (27)5 绘制的部分图形 (30)结论 (37)致谢 (38)参考文献 (39)附录 (40)III图表目录图1-1冯.科克曲线 (2)图1-2 von Koch曲线 (3)图1-3 Sierpinski三角形 (4)图1-4 Cantor三分集 (5)图1-5 几何体与维数 (6)图2-1 Mandelbrot集的坐标图 (8)图2-2 Julia集(c=1.1) (9)图2-3 Mandelbrot集和Julia集 (10)图2-4 c不同的Julia集 (10)图4-1 用例图 (16)图4-2 类图 (17)图4-3 main包类图 (18)图4-4 iterator包类图 (19)图4-5 fractal包类图 (19)图4-6 util包类图 (20)图4-7 主程序运行结果 (28)图4-8 文件子菜单 (28)图4-9 大小子菜单 (29)图4-10 窗口布局 (29)图4-11 外观菜单 (29)图4-12 二维Mandelbrot集 (30)图4-13 二维Julia集之一 (30)图4-14 二维Julia集之二 (31)图4-15 三维Mandelbrot集之一 (31)图4-16三维Julia集之一 (32)图4-17 三维Julia集之二 (32)图4-18 三维Julia集之三 (33)图4-19 三维Julia集之四 (33)图4-20 三维Julia集之五 (34)图4-21 三维Julia集之六 (34)图4-22 三维Julia集之七 (35)图4-23 三维Julia集之八 (35)图4-24 三维Julia集之九 (36)图5-1 不好的三维Julia集 (37)IV四元数Julia分形及其Java编程前言长期以来,我们已经习惯了Euclid几何学中的各种图形,如线段、椭圆、双曲抛物面等等.然而大自然里的天然场景,如树木、群山、河流、湖泊等等,在Euclid 几何领域人们很难用数学语言精确的描述这些现象.20世纪80年代,分形几何学诞生,它给漫长的数学发展史又浓浓的描上了灿烂的一页.加上现代计算机技术的应用,研究上述这些现象的都不再成为难事.分形几何的曲线和曲面具有多姿荆棘的圆盘,弯曲缠绕的螺线和细丝,挂着微细颗粒的鳞茎,无尽的斑斓色彩,意料外的精细结构,处处显示出分形的奇特之美.分形几何学的经典图形之一Mandelbrot集被人们作为分形学和混沌学的国际标志出现在许多国际性论文集和刊物的封面上,成为了世界巡回展出的计算机艺术珍品.这种由数学的内在美变成人们视觉上的美,简直令人匪夷所思.分形几何诞生才不过20多年,但它对人类科学的影响是巨大的.卷入分形狂潮的除数学家和物理学家外,还有化学家、生物学家、地貌学和地震学家、材料科学家,甚至在社会科学和人文科学方面,大批哲学家、经济学家、金融学家乃至作家、画家和电影制作家都蜂拥而入.著名电影“星球大战”就是用分形技术创作的.分形图形学被认为描绘大自然景色最诱人的方法,谁不熟悉分形,就不能被认为他是科学上的文化人.在分形几何中,许多重要的分形是由迭代产生的.因为迭代可以使一些看似简单的函数产生惊人的复杂性,Julia集就是其中一种.由于迭代函数的多样性,Julia 集可以在计算机图形工具的辅助下呈现为色彩斑斓、结构优美的分形图案,因此可广泛应用于纺织印染、广告设计、服装设计、装潢设计以及计算机美术教学等领域.可见,研究Julia集的生成算法具有重要的理论意义和实际价值.逃逸时间算法是生成Julia集的经典算法,它具有基本原理简单、绘图精度高、占用内存少等优点.本软件利用计算机技术绘制Julia的分形图形,将四元数分形的内在美展现在人们眼前,同时也为进一步研究四元数分形随参数的变化提供了研究平台.很多文章中都提到了该算法,并给出其基本步骤,但却没有详细讨论该如何具体实现这些步骤,本文给出的绘制四元数Julia分形的基本步骤和具体实现.在附录中有本软件的源代码.1四元数Julia 分形及其Java 编程2第一章 早期数学怪物与分形几何自从两千多年前希腊人Euclid(欧几里得)创立了几何学以来,人们对某个数学集合,总是习惯于在Euclid 空间(n R , Euclidean )对其研究和对其度量,其中字母n 表示该空间的维数,通常它是一个整数. 对有限个点,取0=n ; 一条线段或一条平面上的曲线, 取1=n ; 一个有限平面, 取2=n ; 对有限的空间几何体,则取n 为3,同时也可分别得到它们的定常度量. 习惯上我们分别称它们为点的个数、线段的长度、平面图形的面积和立体的体积. 但在一个世纪以前,相继出现了一些被称之为数学怪物(Mathematical monsters)的东西,人们无法用传统的Euclid 几何语言去描述它们的局部和整体性质. 典型的数学怪物有以下几种.1 Von Koch(冯.科克)曲线自从有了函数曲线的连续与可微性质及其关系以后,是否存在一个处处连续而点点不可微的函数曲线成了研究的热门. 首先解决这个问题的是大数学家Weierstrass ,他于1872年设计了如下一个函数[1]∑∞==0)2cos()(k k k x b a x W π (1.1)图1.1为)(x W 在3,5.0==b a 时图像[1].图1-1冯.科克曲线其中b a <<<10,且1≥ab (见图1.1),Weierstrass 证明了对某些a 和b 的值,该函数无处可微. 1916年,Hardy 证明了对满足上列条件的所有a 和b 的值,)(x W 都是无处可微的.四元数Julia 分形及其Java 编程3)(x W 的缺点是极难绘画,故不够直观.到1904年,瑞典数学家von Koch 设计了一条被称之为Koch 曲线的图形,其设计步骤如下:设0E 为单位区间[]1,0,第一步,即1=n ,以0E 的中间三分之一线段为底,向上作一个等边三角形,然后去掉区间⎪⎭⎫⎝⎛32,31,得一条四折线段的多边形1E . 0E 是处处可微的,但1E 却有三点不可微. 第二步,即2=n ,对1E 的四条折线段重复上述过程,得一条十六折线段多边形2E ,它有15个不可微点.再重复上述过程,由n E 到1+n E ,当n 趋于无穷时,便得一条Koch 曲线,显然它是一条处处连续但是点点不可微的曲线[1].图1-2 Koch 曲线下面我们看看Koch 曲线在(1R ,Euclidean )中的长度是多少[1].显然,1)length(0=E , 34)length(1=E , ∞====∞→∞→n n n n E length E length E length )34(lim ))((lim )(,916)(2下面看看Koch 曲线的面积是多少[1]:先用一个三角形覆盖全部曲线, 由底长1, 高为63, 故该三角形面积为123.四元数Julia 分形及其Java 编程4接着对曲线的四小部分用四个三角形覆盖, 由于每边长度均为原三角形边长的三分之一,全部三角形面积为94123⨯. 又以边长再缩短31的16个小三角形去覆盖曲线的16个小部分, 全部面积应该是n⎪⎭⎫⎝⎛⨯94123.照次类推得von Koch 曲线的面积为094123lim =⎪⎭⎫⎝⎛⨯=∞→nn S .这样一来, von Koch 曲线在1维Euclid 空间的度量为∞,在(2R ,Euclidean )中,其面积为零. 换言之,Koch 曲线在传统的Euclid 几何领域不可度量.2 Sierpinski(希尔宾斯基)三角形由波兰数学家Sierpinski 命名的三角形,又称Sierpinski 筛,Sierpinski 垫片等等.令0S 为边长为1的等边三角形,第一步(1=n ),连结三条边的中点,得到四个全等三角形,去掉中间一个,保留其余三个,得1S .第二步(2=n ),对1S 的三个三角形重复刚才步骤,得2S ,它含有9个小三角形.如此重复上述步骤,得n S ,当∞→n 时,便得Sierpinski 三角形(见图1.3). 我们也来看看集合S 在(1R ,Euclidean )中的长度是多少.由于在∞→n 时,原先的黑色三角形变成了无穷个小点点,故每个小点的边缘长度之和∞=⎪⎭⎫⎝⎛⨯=∞→nn S length 233lim )(.在(2R ,Euclidean )中,0S 面积为43,以后每一步都是分4留3,所以Sierpinski 三角形的面积04343lim )(=⎪⎭⎫⎝⎛⨯=∞→nn S area ,同样地,在传统的Euclid 几何里,Sierpinski 三角形不可度量[1].图1-3 Sierpinski 三角形四元数Julia 分形及其Java 编程53 Cantor(康托)集记[]1,00=E ,第一步(1=n ),去掉中间三分之一,得⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=1,3231,01 E .第二步(2=n ),重复刚才步骤,得⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=1,9897,3231,9291,02 E .如此重复刚才一系列步骤,得n E ,当∞→n 时,得Cantor 集E (见图1.5) [1].图1-4 Cantor 三分集显然,Cantor 集有无数个点组成,在零维空间,其度量为无穷大.在一维空间,当其在第n 步时,共有n2个小区间,每个区间长度为n⎪⎭⎫⎝⎛31,所以032lim )(=⎪⎭⎫ ⎝⎛=∞→nn E length [1].要么为无穷大,要么为零,Cantor 集在Euclid 几何领域里也不可度量. 上述的三个怪物都是数学家的创造物,然而在自然界,同样有不可思议的现象存在.气象学家Richardson(理查森)(1881~1953) 在测量英国西海岸长度时,发现了一个规律:绘制地图的比例尺由大变小时,如由cm 1代表km 100减小到cm 1代表km 1时,海岸线长度却变得越来越长了.令a 为比例尺度(为1000,1000000等),S为海岸线长度,1S 为1000=a 时的长度,则英国西海岸长度S 的对数[1]a S S log 22.0log log 1-= (1.2)或22.011⎪⎭⎫⎝⎛=a S S . (1.3)这意味着,当a 减小到其231时,S 将增大一倍.按这个公式,海岸线长度实际上是不确定的.也就是说,自然界的某些现象(实际上是许许多多现象)是不能用Euclid 几何来描述的.4 Mandelbrot 和他的分形几何上述这些困惑数学家许多年的怪现象,终于在20世纪70年代被美国数学家B.Mandelbrot(曼德勃罗)彻底解决.在上面的叙述中,我们始终在Euclid 几何的整数维空间中讨论,那么为什么不允许有非整数维的几何存在呢[1]?实际上,若对长度为1的线段n 等分,每段线长为r ,则1=⋅r n (1.4)对面积为1的正方形作n 等分,每个小正方形的边长为r ,则12=⋅r n (1.5)对体积为1的正方体作n 等分,每个小正方体的边长为r ,则13=⋅r n (1.6)图1-5 几何体与维数上面三个等式中,r 的幂次实际上就是该几何体能得到定常度量的空间维数,于是我们有如下公式1=⋅D r n两边取对数,我们得到空间维数D 的表达式:rn D ln ln -= (1.7) 对Koch 曲线而言,在第n 步时,其等长折线段总数为n 4,每段长度为n⎪⎭⎫ ⎝⎛31,于是Koch 曲线的维数D 应为26186.13ln 4ln 31ln 4ln ≈=⎪⎭⎫ ⎝⎛-=n nD . 对Sierpinski 三角形,在第n 步时,所有全等三角形的边数为13+n 个,每边长度为n ⎪⎭⎫ ⎝⎛21,所以Sierpinski 三角形的维数为 58496.12ln 3ln ≈=D . 对于Cantor 集,在第n 步时,原先的单位线段被分成了等长的n 2段,每段长度为n⎪⎭⎫ ⎝⎛31,故其维数 63093.03ln 2ln ≈=D . Mandelbrot 在对这些数学怪物及许多物理现象进行研究后,终于创立了这门重要学科——分形几何(Fractal Geometry ).应该说,到目前还未有严格的定义.我们不妨引用K.Falconner 对分形集合F 的描述:1)F 具有精细的结构,即是说在任意小的尺度之下,它总有复杂的细节; 2)F 是如此地不规则,以至它的整体和局部都不能用传统的几何语言来描述; 3)F 通常具有某种自相似性,这种自相似性可以是近似的,也可能是统计意义上的;4)F 在某种意义下的分形维数通常都大于它的拓扑维数;5)在多数令人感兴趣的情形下,F 以非常简单的方法定义,可以用递归过程产生.第二章 Mandelbrot 集与Julia 集1 Mandelbrot 集1980年, Mandelbrot 给世人提供了一幅无与伦比的杰作: Mandelbrot 集.其创作过程如下:令c z z f +=2)(, 其中C c z ∈,,z 是复变量,c 是复常数.对变换f 施行逃逸时间法, 得到如下迭代公式[1]:pq n n c z z +=+21 (2.1)式中)0,0(0=z ,pq c 为计算机荧屏位于),(q p 位置的象素. 于是(2.1)式成了pq pq pq pq pq n c c c c c z z ++++++=+22222201)))))((((( (2.2) 给定N 为一个正整数, 比如等于255. 当象素位于),(q p 且N n =时,n z 仍然小于预设的一个阈值K , 则在),(q p 位置着色为1(蓝色), 否则当N n <时, 已有K z n ≥, 则在),(q p 位置描色为n . 如此),(q p 遍历整个荧屏后, 便画出了一幅Mandelbrot 集. 该集合的坐标如图2-1所示.图2-1 Mandelbrot 集的坐标图为什么说Mandelbrot 集是分形呢? 实在是它的层层嵌套中有很多很多的自相似部分.部分经逐级放大后, 又出现了一个Mandelbrot 湖.经典的M-集是由映射c z +2得来, 人们自然会采用更多的函数, 从而得到各种各样的M-集, 又称广义M-集.c z z n n +=+cos 1;c e z z c n n ++=+)arcsin(21;c c z z n n ++=+)cosh arctan(81.2 Julia 集Gaston Julia(1893-1978),法国数学家.1919年,他在第一次世界大战时受了伤,住院期间他潜心研究了迭代保角变换c z z n n +=+21. 这种复平面上的变换能生出一系列令人眼花缭乱的图形变化. 当时没有电子计算机,不能象现在那样把如此美妙绝论的图案奉献于世. 因此他的工作并不为世人重视.虽然产生Julia 集和Mandelbrot 集的变换都是[1]3,2,1,0,21=+=+n c z z n n (2.3)但这里的常数c 却是任意复数, 变元0z 是计算机荧屏上的每个象素. 当0z 遍历象素),(q p 的所有点且对公式(2.3)运用逃逸时间法后, 便得到一幅Julia 集c J 了.令1.1=c , 便得到 图2.19图2-2 Julia 集(c=1.1)由于Mandelbrot 集(有时简称其为M-集)和Julia 集都源于同一个变换, 因此它们之间必定有非常复杂的关系. 由于每一个常数 c 都对应一个c J , 而M-集上的每个点都是一个c , 所以M-集合的所有点就对应着数以万计的c J . 图2-3正显示了它们两者之间的这种关系. 看得出, 相近的c 值, 对应的c J 也就较为相似.图2-3 Mandelbrot 集和Julia 集从图2.20可以看出, 凡是M-集的边界点, 其对应的c J 就显有分枝状. 这里面有太多的奥妙.由于一幅Julia 集完全依赖于常数c , 所以我们常常把它简记为c J .图2-4 c 不同的Julia 集与M-集一样, Julia 集也有其广义集. 图2.24的四幅图分别对应于函数: 1. )sin(cos sin 2z z c z = 2. )cos(πz c z ⋅=3. πc z z z +⋅=cos )log(cosh4. πc z z z +⋅=cos )tanh(cos.第三章 四元数分形与四元数Mandelbrot 集和Julia 集 1 四元数基本理论我们都熟悉平面上复数z , 其中bi a z +=, 而1-=i . 无疑, 十八世纪以前创立的复数是数学史上的一件大事. 那末是否有高维的复数呢? 所谓的超复数(hypercomplex 或supercomplex)是这样定义的:令ck bj ai w z +++=, 其中i 和k j ,都是虚数, 它们满足下述运算要求[2]:11=-====-=-==-=-==ijk kk jj ii jik i kj k ji jki i jk k ij看得出, 它们的乘法满足交换律.两个超复数的乘法公式是:令 k z j y i x w h 11111+++=和k z j y i x w h 22222+++=.则[2] +---=)(2121212121z z y y x x w w h h +--+i z y y z x w w x )(21212121+-+-j z x y w x z w y )(21212121kz w y x x y w z )(21212121+++ 其它运算法则就不再赘述.1843年, 爱尔兰数学家William R. Hamilton(哈密尔顿)发明了四元数(quaternion). 一个四元数q 的定义是这样的:zk yj xi w q +++= (3.1)其中z y x w ,,,是实数,k j i ,,是虚数, 且有1222-====ijk k j i (3.2)q 的模 2222z y x w q +++=. (3.3)一个四元数Q 可以由平面上的两个复数v u ,来表示:⎥⎦⎤⎢⎣⎡-+-++=⎥⎦⎤⎢⎣⎡-=bi a di c di c bi a u v v u Q (3.4) 其中d c b a ,,,是实数.v u ,分别是复数v u ,的共轭.一个四元数也能用[]w z y x q ,,,= (3.5)来表示.一个平面上的复数由实部和虚部构成: bi a z +⋅=1, 一个四元数Q 同样也能由若干部分线性组合而成[2]:zK yJ xI wU Q +++= (3.6)其中⎥⎦⎤⎢⎣⎡≡1001U (3.7) ⎥⎦⎤⎢⎣⎡-≡i i I 00 (3.8) ⎥⎦⎤⎢⎣⎡-≡0110J (3.9) ⎥⎦⎤⎢⎣⎡≡00i i K (3.10) 于是U K J I -===222 (3.11)也就是说,K J I ,,是矩阵方程 U X -=2的解, 是负单位矩阵的平方根.一个四元数整系数基的线性组合也叫Hamilton 整数. 在4R 空间, 四元数的基是如下四个:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=10000010001000011 (3.12) ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=0100100000010010i (3.13) ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=0001001001001000j (3.14)⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=0010000110000100k (3.15) 与超复数不同, 四元数的三个虚数之间的运算并不遵从乘法交换律, 其运算规则如下:k ji ij =-= (3.16)i kj j =-= (3.17)j ik ki =-= (3.18)看起来很象三维空间直角坐标系中三个单位向量k j i ,,的叉乘关系.设 zk yj xi w q +++=, 则其四元共轭为zk yj xi w q ---=.其加法遵从一般规律[2]:k z z j y y i x x w w q q )()()()(2121212121+++++++=+.设],,,[],,,,[22221111z y x w q z y x w p ==, 其乘法服从[2])(21212121z z y y x x w w pq ---=i y z z y w x x w )(21212121-+++j x z w y z x y w )(21212121++-+k w z x y y x z w )(21212121+-++q 的模仍然遵从一般复数关系[2].)(q q q q q norm == (3.19)且等于公式(3.3).一个四元数可以写成一个数量加上一个向量).,(v w q =其中向量 [,,]v x y z = . 如此一来, 两个四元数的乘法就变得较为简单[2]:),(),(221121v w v w q q⋅= ),(2112212121v v v w v w v v w w⨯++⋅-=四元数的除法也遵从复数关系q q qp q pp p p p ==-和1从几何上来讲, 四元数代表着时间加三维空间. 如果固定实数w 为常数, 则这个四元数就是三维空间的一个变量.0)(lim 0=→q q f q2 四元数Mandelbrot 集和Julia 集记q 和c 为四元数, 按第二章中Mandelbrot 集的迭代法[2],2,1,0,21=+=+n c q q n n (3.20)就得到一幅3维四元数(把实数w 看作常数, 并认定其为第四维)Mandelbrot 集了.四元数Julia 集是4维空间中的Julia 集,同样使用公式[2],2,1,0,21=+=+n c q q n n其中),2,1,0( =n q n 和c 都是四元数. 生成四元数Julia 集的方法与普通复数情况类似,只需迭代公式(3.20), 只是c 是一个固定的四元数而已. 迭代时要观察 ||n q 的敛散情况.把第四维看作时间,可以认为我们生成的是一个三维动画片. 实际操作时, 一般取第四维为常数,这样我们得到的是静止的三维图像. 程序主体结构与二维情况也类似,我们用多重循环扫描一个三维立方体内部所有的点,就知道该点是否属于Julia 集了. 做法如下:对每一个y对每一个 x对每一个z 作迭代,2,1,0,21=+=+n c q q n n其中],,,0[n n n n z y x q =. 当M n =时, n q 仍属于集合的话就退出这一层循环我们并不计算z 轴方向上的所有点,那样速度太慢. 对于给定的一组),(y x ,只要沿z 轴方向找到第一个属于Julia 集合的点就够了, 其它的点被挡住,让看不见. 这样,就大大提高程序的运行速度. 也有广义的四元数Julia 集. 不过由于以四元数为自变量的函数计算过于困难, 目前还仅仅处理q 的多项式.第四章分形软件设计本软件采用Java语言实现,Java语言具有跨平台的特性,可在多个操作平台上运行,使用程序能在多个平台运行.Java是面向对象的程序设计语言,因此在软件设计时应该采用面向对象的程序设计方法,由于本软件的规模较小,所要实现的功能明确等特点,因此采用UML对软件进行建模.一方面本软件的全部代码由我一人写,不存在与其他人员的交流问题;另一方面,用例较少、每个用例的描述脚本(一般用活动图)简单;加之写本软件的时间所限,所以在设计时只设计了用例图和类图.由于二维和三维的Mandelbrot集和Julia集都是由迭代函数c=2产生的,z+z不同的是绘制图形时c是一个复数,绘制三维图形是c是一个四元数,所以它们之间有很多共性.不论是复数还是四元数,它们都都加、减、乘、除,所以我们先抽象出一个Number接口类,再分别建立Complex类和FourNumber类,在迭代方法只要实现对接口Number迭代,就可以分别应用于对复数类Complex和四元数FourNumber的迭代.Mandelbrot集和Julia集虽都是由迭代函数cz+=2产生,但zz和c的具体含意不一样,Mandelbrot集中的z是0点,c是迭代点的坐标,而在Julia集中z是迭代点的坐标,c是事先给定的一个常量,基于这些特点,利用面向对象的继承机制可以先把它们的共性提取出来,建立一个基类InteratorFractal,由于InteratorFractal并不是一个实际的东西,而是抽象出来,所以用建立成接口类更合理.因为在Java中实现接口的类必须实现接口中全部方法,然而实际中只很少量的不同,为了避免的每个类中都要写大量的代码,所以先建立的适配器InteratorFractalAdatper类,用于实现它们的共同特性,子类子实现自己特有的部分即可,在InteratorFractalAdatper类中提供一个抽象方法drawImagePoint(),用于绘制指定的点,子类中只用实现用来实现drawImagePoint()方法.1 用例图用例图(Use Case diagram)在UML中是非常独特的图形元素,它描述人们希望如何使用一个系统.用例图告诉我们谁是相关的用户,他们系统提供什么服务,以及他们需要为系统提供的服务.用例图是面向对象软件工程(OOSE)的关键元素,面向对象的方法也被称为Objectory(object factory的缩写).用例图是基于用例的方法的一部分,基于用例的方法还对用例的文本描述以及脚本.文本描述用来强调用例的需求细节,脚本则用来说明用例执行中的选项、测试需求以及为后续的开发提供较高层次的测试计划[3].图4-1是本软件的用例图,最为重要的是绘制图像用例,是本软件的核心功能,它能绘制四种类型的图形,分别是:二维Mandelbrot图、二维Julia图(用两种算法实现)、三维Mandelbrot图、三维Julia图.其他用例是一些辅助功能,使整个软件的可操作性更强,更加个性化.图4-1 用例图2 类图在面向对象的处理中,类图处于核心地位,它提供了指导对象定义和使用的一些主要规则.在提供所有这些规则的同时,类图还是前向工程(模型转化为代码)的主要资源,同时是逆向工程的生成物(将代码转化为模型).类的构成类图的基础,因此要使用类图,就需要了解类和对象之间的区别.类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法.与类不同,对象遵守类制定的规则,但它是独一无二的具体的实体.从软件的角度来看,代码通常包含的是类的集合和类所定义的行为,而实际创建信息和管理信息的是遵守类的规则的对象.对象就是数据库中的行、文件中的记录或计算机中的内存块[3].本文的UML图用MagicDraw UML 12.5绘制.本软件的类图包括5个包,如图4-2所示,在类图中的对象之间的联系都给出的多重度.各包的主要实现的功能如下:com.wang.julia.main包:实现整个软件的图形界面和启动画面com.wang.jualia.util包:实现本软件用的数据结构com.wang.julia.fractal包:实现分形绘图算法com.wang.julia.iterator包:实现通用的迭代算法com.wang.julia.logger包:实现日志系统,用来记录整个软件的运行状态,并输出的日志文件中.图4-2 类图图4-3是com.wang.julia.main包的详细类图,com.wang.julia.main主要实现用户界面,实现对分形和绘制和显示,以下分别说明各个类的作用:Java3DJulia:实现用户主界面,包括菜单栏、工具栏、工作区和状态栏ToolsPanel:实现工具栏,是一些常用功能的快捷操作StatusBar:实现状态栏,用来记录当前绘图过程的状态StatusPanel:状态面板,用户显示指定的一个分形绘图的当前状态StartWindow:由于Java在启动时要加载大量的类,等全部加载完再显示,用户不知道程序是否在运行,为了让用户,所以先加载一个很小窗口类,而这个类用于显示当前Java类的加载情况,显示加载进度.图4-3 main包类图图4-4是com.wang.julia.iterator包的详细类图,com.wang.julia.iterator 包用来实现分形的迭代算法,我们知道有很多的迭代公式,最常用的就是多项迭代,也可三角函数迭代.Java的接口是对类的一组需求描述,这些类要遵从接口的统一格式进行定义,即定义与实现分离[3].如果我们要定义新迭代函数,只需实现IteratorFunction接口既可,无需修改程序的其他部分.由于本文只讨论多项式迭代,所以只实现多项式迭代,也就是类PolynomialIterator类.图4-5是com.wang.julia.fractal包的详细类图,com.wang.julia.fractal主要实现分形的迭代,跟com.wang.jualis.iterator包一样,先定义一个IteratorFractal接口,再定义一个适配器IteratorFractalAdapter类用来实现迭代分形的公共部分,Julia2D、Julia3D、Mandelbrot2D、Mandelbrot3D都对指定的点进行迭代,根据迭代结果来决定该点的绘制颜色.JuliaIFS是采用的牛顿迭代法生成的,用递归实现,适配器的drawImage()方法不适合,所以在JuliaIFS类中覆盖适配器中的drawImage()方法,实现自己的特性.。
神奇又美丽的函数
神奇又美丽的函数
函数世界中存在着许多神奇而美丽的函数,它们具有独特的性质和令人惊叹的图像。
以下是几个例子:
1. Mandelbrot集合:Mandelbrot集合是一个复变函数的图像,其定义是通过迭代计算来确定每个复数是否属于集合。
它的图像展现出复杂而美丽的分形结构,具有无限细节和自相似性。
2. Sine函数:正弦函数是最基本和广为人知的函数之一。
它以平滑的波形展现出周期性的特征。
正弦函数在物理、工程和计算机图形学等领域中广泛应用,能够描述周期性振动和波动的行为。
3. Fibonacci数列:Fibonacci数列是一种数学序列,其每个数都是前两个数之和。
这个数列展现出令人惊叹的数学规律和比例美感,被广泛应用于自然界、艺术和设计领域。
4. Logistic映射:Logistic映射是一种简单的非线性映射函数,其图像表现出复杂的混沌行为。
在参数范围内,它可以产生非常多样和随机的图案,展示出混沌系统的美学魅力。
5. Julia集合:Julia集合是复变函数与参数结合的图像,类似于Mandelbrot集合。
它通过迭代计算来确定复数参数的每个值是否属于集合,其图像呈现出丰富的几何形态和复杂的分形结构。
这些函数展示了数学的奇妙之处,具有艺术性、美学性和科学性的结合。
它们的图像启发人们探索数学和自然之间的联系,并在艺术、科学和计算机图形学等领域中产生了广泛的应用和研究。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s ta d J s t r d a c d e n e e a v n e .T i ag rt m e u e h i fd a i g n o sr cs a lt f e u i l f n a — we h s lo h r d c s te t i me o r w n ,a d c n tu t o a t u , a ts ob f
s mme r y t y,b s d o h s a e tme a g rt m ,s e i c l o ai n s mme r c ee ai e a g r h ame tM a e n t e e c p i l oi h p cf al r t t y i y o t a c lr t lo t m i d a y v i
冯 玲 张桂 兰 一
FENG n Lig ZHAN G Gui—l n —a
墓 驻 过大 计 机 实 4用Mn lo 和Ji 不同 旋 对 性, 传统 逸 算法 基 麟萌 通 量 算 数学 验, i ' a er 集 u 集 的 转 称 在 逃 时间 的 础 dbt l a
上 , 出 了针 对 于 M 集 和 J集 的 特 定 的 旋 转 对 称 加 速 算 法 , 高 了绘 图速 度 。并 且 引入 不 同判 敛 标 准 和 提 提
传统 的逃逸时 间算法 是根据 M 集和 J集在 复平 面上 的收敛 性提 出的 , 其构造过程 如下 : () 1 给定计 算机屏幕代表 的迭代 区域 , 逸半 径 R及 最多 逃 迭代次数 Ⅳ; ( ) 义逃 逸时间 函数 : 2定
() I ( ) R,() < = 2 …, = 。 。 。 。 R ,, 一 l f
t r ca ma e r u h i o t g oh rc n i o ss c sd f r n r e o r o v r e c n o v r e c a i fa tl c i g st o g mp ri t e o dt n u h a i ee t i r n f n e g n e a d c n eg n e r — h n i f c ti o c
的c 值下追踪其迭代点 列 , 在参数 空间 C平 面上记 录点 列的结构
并 绘 图 。可 用 下 面 两 个 定 义 进 行 定 义 。 定义 2 当 n 2 : > - ): + c的 M 集 :
18 90年美 国数学 家 Madlrt n e o 利用复映射 , ,)= +c 一次 b ( c 第 在参数 平 面上 构造 的 Mad l o 集 图形 , 国际 学术 界 公认 为 n e rt b 被 “ 最复杂 、 最难解 的科学 问题之 一” 。它通过一 个简单 的复迭代 , 可以产生美 丽 而 复杂 的 混沌 分形 图案 。M nebo 集 ( a dlrt 简称 M 集) 是具有无穷嵌套结构 的紧集 … , M集 中隐含 了另一族具 有 在 无穷嵌套 结构 的连接 Jl 集 ( 称 J集 ) ui a 简 。M 集 和 J 以其 美丽 集 和复杂 引起 了各 国科学 家的关注和研究 , 并且 利用计 算机 图形学 绘制 M 集和 J 。绘制这两个 图形 主要 是应用逃逸时 间算法 , 集 此 算法绘 图精细 , 能展现 它们 的美 丽和 复杂 , 速度 慢 , 但 浪费 机 时。 本文通过大量 的计算机 数学实验 , 在构 造二阶及高 阶 M 集和 J集 时改进 了逃逸 时间算 法 , 出旋转 对称 加速逃 逸 时间算 法 , 高 提 提
L I ) <R 0f( l i ,, =12 …Ⅳ () 3 对迭代 区域 内的点 c计算 T c ; , ( )
≤Ⅳ
2 基 本 原 理
定义 1 记 ( 为 W的第 k次迭 代式, , …( ( ) ) 。如 : W) (( , W ) ) 果, W ( )=W, 则称 W为,的不动点 。如果存 在某 个大 于或 等 于 1 的整数 P 使尸( , W)= 则称 W是,的周期点 , W, 使尸( W)= W的最小 的 P称为 W的周期 。且称 W W , ) … ( 为周期 P的轨道 。 W) 二阶或高阶 M集 和 J集都是采用复平 面上 的迭代 关系
了绘 图速 度 , 绘 制 出 大 量 奇 异 的 图形 。 并
M ={ ∈c { 0 } c : ( ) k =1 界 } 有 定义 3 :当 n 2 ()= + - > c的 J集 :
J={ c { () =1 界 } : } 有
3 逃 逸 时 间算 法 .
收敛半径等其 它条件 , 构造 了美丽、 奇异 的分形 图案。
_蔫熊懒 _
M集 J 集 逃逸时间算法 旋转对称性
.
Hale Waihona Puke Ab t a t T ru h l t o o u e —ma h ma is e p r n s sn i e e to s ta d J s t oa in s r c h o g os f mp t r c t e t x e me t .u i g d f r n fM e n e §rt t c i f o
维普资讯
信息技术 与信息佗
旋 转对 称 加 速 算 法 绘 制 Ma dlrt 和 Jl ne o集 b ui a集
A Roain S mmer c lrt e Aloi m o o srcig Ma d lrtS ta d J l e tt y o t Ac eeai g r h frC n t t n eb o e n ui S t y v t u n a
dis u.
Ke wo d M e Js t E c p i lo t m Roa in s mmer y rs s t e s a e t me ag r h i tt y o t y
1 引 言
Madlrt 和 Jl nebo 集 ui a集 是 分 形 领 域 中 相 当 典 型 的 例 子 。