Matlab实验报告:分形迭代

合集下载

MATLAB二分法和牛顿迭代法实验报告

MATLAB二分法和牛顿迭代法实验报告
(1)计算f(x)在有解区间[a, b]端点处的值。
(2)计算 在区间中点处的值 。
(3)判断若 ,则 即是根,否则检验:
①若 与 异号,则知道解位于区间 ,
②若 与 同号,则知道解位于区间, ,
反复执行步骤2、3,便可得到一系列有根区间:
(4)当 ,则 即为根的近似值。
Newton迭代法原理:设已知方程 的近似根 ,则在 附近 可用一阶泰勒多项式 近似代替.因此,方程 可近似地表示为 .用 表示 的根,它与 的根差异不大.
3.在MATLAB命令行窗口求解方程f(x)
4.得出计算结果
设 ,由于 满足 解得
重复这一过程,得到迭代格式
实验所用软件及版本:MATLAB R2014a
主要内容(要点):
实验过程记录(含:基本步骤、主要程序清单及异常情况记录等):
二分法:
1.在MATLAB编辑器中建立一个实现二分法的M文件bisect.m
2.在MATLAB命令行窗口求解方程f(x)
3.得出计算结果
数学应用软件大型实验实验报告
实验序号:日期:年月日
班级
姓名
学号
实验
名称
二分法和Newton迭代法
问题背景描述:
分别编写一个用二分法和用Newton-Raphson法求连续函数的零点通用程。
实验目的:
用以求方程x^2-3*x+exp(X)=2的正根(要求精度ε=10^-6)。
实验原理与数学模型:
二分法原理:如果函数y=f(x)在闭区间[a,b]上连续,且已知函数在两端点的函数f(a)与f(b)取异号,即两端点函数值的乘积f(a)*f(b)<0,则函数y=f(x)在区间(a,b)内至少有一个零点,即至少存在一点c,使得f(x)=0的解。

迭代与分形

迭代与分形

实验名称:迭代与分形专业:信息工程班级:09级四班姓名:序号:29,38提交日期:2011年4月29日一、实验目的与要求1.认识Fibonacci数列,体验发现其通项公式的过程;2.了解matlab软件中进行数据显示与数据拟合的方式;3.掌握matlab软件中plot, polyfit等函数的基本用法;4.提高对数据进行分析与处理的能力。

二、问题描述几何学研究的对象是客观世界中物体的形状。

传统欧氏几何学的研究对象,都是规则并且光滑的,比如:直线、曲线、曲面等。

但客观世界中物体的形状,并不完全具有规则光滑等性质,因此只能近似当作欧氏几何的对象,比如:将凹凸不平的地球表面近似为椭球面。

虽然多数情况下通过这样的近似处理后,能够得到符合实际情况的结果,但是对于极不规则的形态,比如:云朵、烟雾、树木等,传统的几何学就无能为力了。

如何描述这些复杂的自然形态?如何分析其内在的机理?这些就是分形几何学所面对和解决的问题。

三、问题解决(1)对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

(2)自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘制出它的图形,并计算其分形维数。

1、程序如下:function plottrkoch(a,k)%函数,a为迭代0次的三角形的边长,k为迭代次数p=[0 0;a 0;a/2 a/2*sqrt(3);0 0];n=3;A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)];for s=1:kj=0;for i=1:nq1=p(i,:);q2=p(i+1,:);d=(q2-q1)/3;j=j+1;r(j,:)=q1;j=j+1;r(j,:)=q1+d;j=j+1;r(j,:)=q1+d+d*A';j=j+1;r(j,:)=q1+2*d;endn=4*n;clear pp=[r;q2];endmianji=sqrt(3)*(1+3*(1-(4/9)^k)/5)/4*a^2%计算迭代k次后的面积大小weishuD=log(4)/log(3)%计算维数plot(p(:,1),p(:,2))axis equal当k=1时当k=3时当k=5时因为是Koch曲线,所以维数d=ln4÷ln3=1.2619计算面积:假设最初的正三角形边长为1,则其周长为,面积为。

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计算方法迭代法牛顿法二分法实验报告实验报告一、引言计算方法是数学的一门重要应用学科,它研究如何用计算机来解决数学问题。

其中,迭代法、牛顿法和二分法是计算方法中常用的数值计算方法。

本实验通过使用MATLAB软件,对这三种方法进行实验研究,比较它们的收敛速度、计算精度等指标,以及它们在不同类型的问题中的适用性。

二、实验方法1.迭代法迭代法是通过不断逼近解的过程来求得方程的根。

在本实验中,我们选择一个一元方程f(x)=0来测试迭代法的效果。

首先,我们对给定的初始近似解x0进行计算,得到新的近似解x1,然后再以x1为初始近似解进行计算,得到新的近似解x2,以此类推。

直到两次计算得到的近似解之间的差值小于规定的误差阈值为止。

本实验将通过对复杂方程的迭代计算来评估迭代法的性能。

2.牛顿法牛顿法通过使用函数的一阶导数来逼近方程的根。

具体而言,对于给定的初始近似解x0,通过将f(x)在x0处展开成泰勒级数,并保留其中一阶导数的项,得到一个近似线性方程。

然后,通过求解这个近似线性方程的解x1,再以x1为初始近似解进行计算,得到新的近似解x2,以此类推,直到两次计算得到的近似解之间的差值小于规定的误差阈值为止。

本实验将通过对不同类型的方程进行牛顿法的求解,评估它的性能。

3.二分法二分法是通过将给定区间不断二分并判断根是否在区间内来求方程的根。

具体而言,对于给定的初始区间[a,b],首先计算区间[a,b]的中点c,并判断f(c)与0的大小关系。

如果f(c)大于0,说明解在区间[a,c]内,将新的区间定义为[a,c],再进行下一轮的计算。

如果f(c)小于0,说明解在区间[c,b]内,将新的区间定义为[c,b],再进行下一轮的计算。

直到新的区间的长度小于规定的误差阈值为止。

本实验将通过对复杂方程的二分计算来评估二分法的性能。

三、实验结果通过对一系列测试函数的计算,我们得到了迭代法、牛顿法和二分法的计算结果,并进行了比较。

分形与迭代

分形与迭代

实验三迭代与分形一、实验目的与要求1.了解分形几何的基本情况;2.了解通过迭代方式产生分形图的方法;3.了解matlab软件中简单的程序结构;4.掌握matlab软件中plot, fill等函数的基本用法;二、问题描述1.对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

2.自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘制出它的图形,并计算其分形维数。

三、问题分析1.第一题要求我们利用一个等边三角形然后在三角形的基础上利用理论课上的Koch曲线的画法,产生一朵Koch雪花,由于Koch雪花的产生相当于将三条等长的直线分别产生的Koch曲线按照等边三角形的坐标形式组合起来然后在同一个坐标系中表示出来,这就形成了Koch雪花图案。

四、背景知识介绍1.什么是迭代迭代法是常用的一种数学方法,就是将一种规则反复作用在某个对象上,它可以产生非常复杂的行为。

我们这里介绍图形迭代和函数迭代两种方式。

(1)图形迭代。

给定初始图形F0,以及一个替换规则R,将R反复作用在初始图形F0上,产生一个图形序列:R(F0)=F1,R(F1)=F2,R(F2)=F3,…(2)函数迭代。

给定初始值x0,以及一个函数f(x),将f(x)反复作用在初始值x0上,产生一个数列:f(x)=x1,f(x1)=x2,f(x2)=x3,…2.p lot函数介绍plot是最重要最基本的二维曲线绘图指令,基本功能是画折线和曲线。

基本调用格式如下:(1)plot(Y,LineSpec)。

其中,Y一般是数组;而LineSpec是用来指定线型、色彩等的选项字符串,可省略。

本功能是以数组Y作为竖坐标,以数组元素的下标为横坐标,画出一条折线。

当数组元素很多时,就出现连续曲线的效果。

(2) plot(X,Y)。

其中,X、Y一般是相同长度的数组。

实验三MATLAB的图形功能于分形

实验三MATLAB的图形功能于分形
南 京 邮 电 大 学
Nanjing University of Posts and Telecommunications
用给定数据绘制三维曲面
在绘图数据已知的情况下, 可以利用mesh, surf 和surfl等函数分别绘制网格图, 刻面图和曲面图. 其中刻面图是用不同颜色对网格图中的单元进 行填充, 而曲面图是对刻面图的颜色进行了平滑 处理. 绘制三维曲面图可分为三个过程:
生成平面网格点数据; 计算三维网格点数据; 绘制三维曲面并进行处理
南 京 邮 电 大 学
Nanjing University of Posts and Telecommunications
Matlab在绘制函数z=f(x, y)的三维图形时,首 先将其定义域D分为若干个小矩形(或三角形), 然后计算出网格点上的函数值,最后连接相邻 的函数值空间数据并构成函数的网格曲面。我 们以矩形网格为例。
xmax], 或者x轴和y轴上的范围[xmin xmax ymin
ymax]. function必须是M文件函数的名称或句柄, 或者含 有变量x的字符串. LineSpec指定属性进行绘图.
南 京 邮 电 大 学
Nanjing University of Posts and Telecommunications
京 邮 电 大 学

Nanjing University of Posts and Telecommunications
Plot(X,Y) —— 最基本的二维图形命令
plot命令自动打开一个图形窗口Figure1
原理:
用直线连接相邻两数据点来绘制图形 根据图形坐标大小自动缩扩坐标轴,将数据标尺及单 位标注自动加到两个坐标轴上 使用方法:

数学实验迭代:分形

数学实验迭代:分形

迭代:分形姓名:学号:班级:数学与应用数学4班实验报告实验目的:以迭代的观点介绍分形的基本特性以及生成分形图形的基本方法,使读者在欣赏美丽的分形图案的同时对分形几何这门学科有一个直观的了解,并从哲理的高度理解这门学科诞生的必然,激发读者探寻科学真理的兴趣。

实验环境:Mathematica软件实验基本理论和方法:在19世纪末及20世纪初,一些数学家就构造出一些边界形状极不光滑的图形,而这类图形的构造方式都有一个共同的特点,即最终图形F都是按照一定的规则R通过对初始图形不断修改得到的。

其中最有代表性的图形是Koch曲线,Koch曲线的构造方式是:给定一条直线段,将该直线段三等分,并将中间的一段用以该线段为边的等边三角形的另外两条边代替,得到图形,然后再对图形中的每一小段都按上述方式修改,以至无穷。

则最后得到的极限曲线即是所谓的Koch曲线。

生成元:Koch曲线的修改规则R是将每一条直线段用一条折线代替,我们称为该分形的生成元。

分形的基本特性完全由生成元确定,因此,给定一个生成元,我们就可以生成各种各样的分形图形。

Julia集绘制方法:(1)设定初值p,q,一个最大的迭代次数N,图形的分辨率的大小a,b,和使用的颜色数(如K=16)(或者给定灰度级L);(2)设定一个上界值;(3)将矩形区域分成的网格,分别以每个网格点,,,,作为初值利用riter做迭代(实际上,只需对满足的初值点做迭代)。

如果对所有,,则将图形的像素点用黑色显示,否则,如果从迭代的某一步开始有,则用modK种颜色显示相应像素(或者用相应的灰度级显示)。

Mandelbrot集绘制方法:设定一个最大的迭代次数N,图形的分辨率的大小a,b,和使用的颜色数(如K=16)(或者给定灰度级L);(2)设定一个上界值;(3)将矩形区域分成的网格,分别以每个网格点,,,,作为参数值利用riter做迭代(实际上,只需对的初值点做迭代),每次迭代的初值均取为。

几个分形的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由于中间三分之一部分是一个正方形时,有很多连接的部分。

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

数学实验报告:分形迭代练习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.实验结论:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。

7.问题分析:一般迭代次数大于7,程序运行时间就很长,因此迭代次数建议设定为5。

练习21.实验目的:研究Koah雪花的特征。

2.实验内容:对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

3.方法思路:采用Koch曲线的迭代元来绘制。

4.实验步骤:function xuehua(n)koch(0,0.5+(1/2)*sqrt(3)*i,n);koch(0.5+(1/2)*sqrt(3)*i,1,n);koch(1,0,n);endxuehua(1);xuehua(3)5.主要输出:不同n对应不同的图像如下:n=1 n=36.实验结论:每一次迭加,所产生的新三角形的边长变为上一次的1/3,数量为上一次的4倍。

而设原三角形边长为r ,Koch 雪花的面积∑=-⨯⨯⨯+=n i ii r r S 12122]3143[4343, 由此可以推出雪花曲线的边长是无限的,而面积是有限的。

另外,从图像可以看出,随迭代次数n 趋于无穷,图形每一点都没有切线。

7.问题分析:由于没有找到matlab 中相应的计算图形面积与周长的函数,所以这两项计算是由人工完成的。

练习31.实验目的:研究分形维数反映出来的分形的特性。

2.实验内容:利用分形维数公式d=log(n)/log(c)计算雪花曲线,Sierpinski 三角形,Minkowski 香肠的维数并与其图像显现出的性质进行比较。

3.方法思路:只需画出Minkowski 香肠的图像,其他分形利用之前图像与维数进行比较即可。

4.实验步骤:Minkowski 香肠:function Minkowski(p,q,n) if (n==0)plot([real(p);real(q)],[imag(p);imag(q)]); hold on; axis equal elsem=(q-p)/4;m1=real(m);m2=imag(m);a=p+m; b=a+(-m2+m1*i);c=b+m;d0=c+(m2-m1*i); d=c+2*(m2-m1*i);e=d+m;f=e+(-m2+m1*i); Minkowski(p, a, n-1); Minkowski(a, b, n-1); Minkowski(b, c, n-1); Minkowski(c, d0, n-1); Minkowski(d0, d, n-1); Minkowski(d, e, n-1); Minkowski(e, f, n-1);Minkowski(f, q, n-1);5.实验输出:由分形维数公式log(n)/log(c)可计算的个图形的维数。

雪花曲线:log4/log3=1.26Minkowski 香肠:log n/logc=1.5 Sierpinski 三角形:log3/log2=1.58Minkowski 香肠:6.实验结论:可见雪花曲线,Sierpinski 三角形,Minkowski 香肠的维数都在1与2之间,它们的图像的面积都有极限,而图形边长无限长。

维数越接近1,则图形有更多的曲线的性质,维数越接近2,则图形有更多的平面的性质,由此可推算Hilbert 曲线的维数很接近2。

7.问题分析:迭代次数越大,则图像的说明效果越好,但程序的运行时间也越长,建议迭代次数不要超过7。

练习41.实验目的:探索Weierstrass 函数图像的性质2.实验内容:已知Weierstrass 函数如下:()()()21sin ,1,12,s k k k W x x s λλλ∞-==><<∑对不同的s 值,画出函数图像,观察图像的不规则性与s 的关系,并猜测Weierstrass 函数图像的维数与s 的关系 3.方法思路:由于Weierstrass 函数表达式中为无穷项求和,Matlab 中使用无穷项求和花费太 多时间,所以考虑取足够大的项数进行运算,通过变换s 的值,画出不同的图像 进行比较,达到原来的实验目的。

4.实验步骤:syms f xf=0; y=10; s=1.4; %s=1.6; %s=1.8; for i=1:100f=f+y^((s-2)*i)*sin(y^(i)*x); endezplot(f,[0,2])S的取值对应Weierstrass函数的图像S=1.4s=1.6s=1.86.实验结论:Weierstrass函数图像随着s值的增加变得更加不规则猜测随着s取不同的值,Weierstrass函数图像的维数随着s值得增加而变大7.问题分析:考虑到不同项数的做和可能会影响图像的准确性,但在实验了100项、300项和500项的做和后,发现图像改变并不是很大,而当项数改为1000后,发现又要等很长的时间,且得到的结论相同,所以取100项的求和进行实验。

练习61.实验目的:绘制Mandelbrot集和Julia集。

2.实验内容:绘制Mandelbrot集并局部放大,与其不同的部位(内点、外电、边界点及芽孢内点)对应的Julia集形状进行对比。

3.实验思路:按照Mandelbrot集和Julia集的构造方法,先编写好相应函数,观察Mandelbrot 集的局部细节,出几个典型的内点、外电、边界点及芽孢内点,然后画出对应的Julia集并比较。

4.实验步骤:(1)Mandelbrot集function mandelbrot(z,r,k,d)if nargin < 4k = 200; %迭代次数d = 500; %分辨率z=-0.75; %中心r=1.25; %显示半径endx = linspace(real(z)-r,real(z)+r,d);y = linspace(imag(z)-r,imag(z)+r,d);A = ones(d,1)*x+i*(ones(d,1)*y)';C=A;B = zeros(d,d);for s = 1:kB = B+(abs(A)<=2);A = A.*A+C;end;imagesc(flipud(B));colormap(jet);hold off;axis equal;axis off;(2)Julia集function Julia(c,k,v)if nargin < 3c = -0.5; k = 100; v = 500;endr = max(abs(c),2);d = linspace(-r,r,v);A = ones(v,1)*d+i*(ones(v,1)*d)';B = zeros(v,v);for s = 1:kB = B+(abs(A)<=r);A = A.*A+ones(v,v).*c;end;imagesc(B);colormap(jet);hold off;axis equal;axis off;5.主要输出:以下为不同z值的Mandelbrot集的局部放大图形以及对应的Julia集图形Mandelbrot集全局图Mandelbrot集局部对应Julia集z= -1;z为内点。

z= -1+0.5iz为外点。

z= -1+0.3iz为边界点。

z= -1.448z为芽孢的内点z= -1.76z为一个更小的芽孢的内点6..实验结论:当z为Mandelbrot集的内点时,则对应的Julia集有内点,且图形面积很大;当z为Mandelbrot集的外点时,则对应的Julia集为空集;当z为Mandelbrot集的边界点时,则对应的Julia集无内点但连通,且两图形状相似。

当z为Mandelbrot集的芽孢的内点时,则对应的Julia集有内点,且芽孢的面积越大,对应Julia集的面积越大。

另外,Mandelbrot集的芽孢与整个Mandelbrot集有明显的相似性。

7.问题分析:由于分形的结构是无限精细的,要确定Mandelbrot集的边界点并不容易,事实上实验过程中只选取了一个与边界点很接近的点;另外,根据本算法所画的Julia集是不可能为空集的,但可以根据Julia集的收敛速度判断其实际的Julia集是否为空集。

相关文档
最新文档