1.4.3分形 雪花曲线 mathematica 程序_第1页
1.4.3分形 雪花曲线 mathematica 程序_第2页
1.4.3分形 雪花曲线 mathematica 程序_第3页
1.4.3分形 雪花曲线 mathematica 程序_第4页
1.4.3分形 雪花曲线 mathematica 程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.4.3 koch雪花曲线的mathematic程序设计(王积社)1.4.3.1 试验问题: koch雪花曲线的mathematic程序设计.1.4.3.2 试验目的: 掌握mathematic迭代程序设计方法; 用mathematic作出koch雪花曲线; 通过试验,认识分形的妙处,掌握分形程序设计基本方法。1.4.3.3 问题分析 1.4.3.3.1 算法分析:abbacd e1o 雪花曲线的生成元为:可见,从几何作图方法来看,生成的方法为:把线段ab三等分,得到分点c、e,再把向量ce绕c逆时针旋转60o得到d点,这样图形就生成了。 2o 为了便于计算和处理,我们把图形放在坐标系中。设

2、线段ab的两端点的坐标为a(x1,y1)、b(x2,y2),则koch雪花曲线的生成元的关系可用向量表示为:a(x1,y1)c de b(x2,y2)y xo可见,要想确定雪花曲线的生成元,关键是确定c、d、e点的坐标,为此,应该分析图中的向量关系.3o 分析图中的向量关系: 先分析向量:这样即得: 再分析向量: 是由旋转60o而得,于是令矩阵:,则有: 而又 a(x1,y1)c de b(x2,y2)y xo,所以从而 于是我们可用来表示.4o 以上过程可以说是从向量出发,求出了向量、,相当于从点集a、b出发求得了点集a、c、d、e、b.5o 对点集a、c、c、d、d、e、e、b分别重复上面

3、的过程(即迭代),如此下去(有限次)6o 将所上面所生成的相应的点对连线,即可做出koch雪花曲线.1.4.3.3.2 mathematica的画线功能:要作出雪花曲线,需要将点连线,即需要mathematica的画线功能,经查可知mathematica的“画线”功能函数为:linex1,y1,x2,y2,(p224) 依次连接相邻两点的线段,作如下试验,输入: a=0,0,1,0,1,1,0,1,0,0;linea如果连线成功的话,应该是一个矩形,然而运行结果如下:未得所想,原因是linea只是一种“意连”,但不真正画出线条(或者说没有显示出线条),然而我们想到show可以显示图形,于是试输

4、入:showlinea希望显示出图形,可是运行结果却为:可见有错,错误提示的意思是“line”不是图形元素,于是需要将“line”转换为图形元素,这需要graphics来完成,总之于是应输入以下命令:showgraphicslinea这样可得到:请大家注意这种做法。1.4.3.3.3 算法大意:1) 取点a(0,0)、b(0,1),以其坐标做集合ab=a、 babbacd e记: l=|ab|=2 (ab的长度,即元素个数)2) 求点c、e 3) 求点d 4) 令:tmp=a,c,d,e,b。5) 对点集a、c、c、d、d、e、e、b中的每对点分别重复上面的过程(迭代).6) 依次连接上面所生

5、成的相邻的点,即可划出雪花曲线。将1)4)设计成一个从点集ab出发,构作点集tmp的模块(定义为函数“koch”),当“ab”中点较多时,应循环实现。1.4.3.3.4 算法框图: 由上面的分析,可得以下的算法框图 定义模块 说明内部变量:临时表tmp、循环变量ito l(表ab的长度)、角度变量jd(初值60o)、变换矩阵及c、d、e等 fori=1,il,i+ 模块结束,返回“tmp” 计算:c、d、e的值 计算结果依次填入到“tmp”中 迭代,生成雪花曲线的点集 定义函数koch,参数为ab(类型为表),函数体为模块 划线。 1.4.3.4 程序设计kochab_list:= lengt

6、hlist,给出表中元素的个数(p215)blocktmp=,i,l=lengthab, degree,度(p212)jd=60degree,sa=sinjd,ca=cosjd,c,d,e,t=ca,-sa,sa,ca,fori=1,isqrt3/6nestf,expr,n f对expr作用n次 aspectratio-1/goldenratio生成图形的纵横比 运行结果:迭代次:迭代次:迭代次:迭代次:迭代次:迭代次:1.4.3.6 结果分析上面只是做出了koch雪花曲线的一支,做法是对点a(0,0)、b(0,1)迭代生成的,而整个koch雪花曲线应该是对正三角形:的三边生成,请自己考虑写出

7、做整个koch雪花曲线的mathematica程序1.4.3.7 程序进一步认识为了进一步认识程序,我们取2次迭代,且对程序进行跟踪,以分析执行过程。执行以下程序:kochab_list:= blocktmp=,i,l=lengthab, jd=60degree,sa=sinjd,ca=cosjd,c,d,e,t=ca,-sa,sa,ca,fori=1,isqrt3/6,_=_根据跟踪结果,可整理得如下中间数据:从上述结果可看出执行过程中的主要中间结果: 第一次迭代:tmp=,l=2,jd=60o,i=1 to 1 第二次迭代:tmp=,l=5,jd=60o,i=1 i=2 i=3 i=4 附

8、:用line画图 莫比乌斯带(mbius带)的生成mathematica优秀的图形显示功能cai教学注入了新的活力,通过精确计算得到的图形比传统方法得到的模拟图形更为准确和更有说服力。我们应充分挖掘它的功能,使其更好地为教学服务。下面用line函数画出mobius带,供参考。1、 用line函数画图设空间曲线的参数方程为,在其上取一点列,利用line便可得到所需要的曲线(折线):,当然,它只能作为图形表达式而保存下来,我们可以利用show来显示其图形.2、莫比乌斯带简介莫比乌斯带(mbius strip或者mbius band),又譯梅比斯環,是一种拓扑学结构,它只有一个面(表面),和一个边界

9、。它是由德国数学家、天文学家奥古斯都莫比乌斯(august ferdinand mbius)和约翰林斯丁(johhan benedict listing)在1858年独立发现的。这个结构可以用一个纸带旋转半圈再把两端粘上之后轻而易举地制作出来。事实上有两种不同的莫比乌斯带镜像,他们相互对称。如果把纸带顺时针旋转再粘贴,就会形成一个右手侧的莫比乌斯带,反之则亦然。如下图示:2、莫比乌斯带的参数方程我们可以得到莫比乌斯带的双参数方程: 其中: .3、莫比乌斯带的生成画法分析设为平面上的圆,考虑过圆上的点 的线段,其端点分别为.在点和轴确定的平面内将线段绕旋转,得线段,设与的夹角为,则由球坐标的意义

10、易知,.假设圆柱面 由有限条母线生成,将这些母线依次按上述方式作相应旋转(旋转角依次增加),使结束位置的母线正好旋转,这样便将圆柱面变换成莫比乌斯带。4、莫比乌斯带的生成画法程序:mobiusm_, n_, r_:=modulef, g,x1t_=r cost+sint/2 cost;y1t_=r sint+sint/2 sint;z1t_=cost/2;x2t_=r cost-sint/2 cost;y2t_=r sint-sint/2 sint;z2t_=-cost/2;f=tablegraphics3drgbcolor1, 0, 0, thickness0.005,linex1t, y1

11、t, z1t, x2t, y2t, z2t,rgbcolor0, 1, 0, pointsize0.02, pointx1t, y1t, z1t,rgbcolor0,0,1, pointsize0.02, pointx2t, y2t, z2t,displayfunction-identity, t, 0, 2 pi m/n, 2pi/n;g=parametricplot3dr cost, r sint, 0, t, 0, 2pi,plotrange-r-1, r+1, -r-1, r+1, -1, 1, displayfunction-identity;showf, g,displayfunction-$displayfunction, aspectrati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论