[精品]六个分形图形的matlab实现(6)
- 格式:pdf
- 大小:579.26 KB
- 文档页数:6
![[精品]六个分形图形的matlab实现(6)](https://imgs-1438308264.cos.ap-hongkong.myqcloud.com/6577f5fe84254b35eefd34ad.webp)
![[精品]六个分形图形的matlab实现(6)](https://imgs-1438308264.cos.ap-hongkong.myqcloud.com/6577f5fe84254b35eefd34ad.webp)
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。
2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。
Newton分形的原理及Matlab实现作者:张健徐聪全付勇智来源:《电脑知识与技术》2009年第24期摘要:详细推导了复平面上Newton迭代法的原理和计算公式,用MATLAB编制程序实现了Newton迭代算法,得到了一些奇异、绚丽的分形图形。
对《数学实验》课程有一定的参考价值。
关键词:Newton迭代法;分形;Matlab;数学实验中图分类号:TP312文献标识码:A文章编号:1009-3044(2009)24-6997-03The Principles of Newton Fractal and it's Realization Using MATLABZHANG 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分形的绘制,生成了一些奇异、瑰丽的分形图形。
6节点三角形单元matlab在MATLAB中,可以使用有限元分析工具箱来创建和操作三角形有限元网格以及进行相应的计算。
下面我将从几个角度来介绍在MATLAB中如何处理6节点三角形单元。
1. 创建6节点三角形单元网格:在MATLAB中,可以使用 PDE 模型创建器 App 或者命令行函数来创建6节点三角形单元网格。
首先,你可以使用命令行函数如下创建一个简单的6节点三角形单元网格:matlab.model = createpde();geometryFromEdges(model,@()gunit);generateMesh(model,'Hmax',0.1);pdeplot(model);这段代码创建了一个 PDE 模型,使用默认的单位几何体,然后生成了一个包含6节点三角形单元的网格,并进行了绘制。
2. 定义材料属性和边界条件:一旦创建了网格,你可以定义材料属性和边界条件。
例如,你可以使用以下代码定义一个材料属性和施加边界条件:matlab.specifyCoefficients(model,'m',0,'d',1,'c',1,'a',0,'f',1);applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geo metry.NumEdges,'u',0);3. 求解和后处理:接下来,可以使用 solve 函数求解模型,并使用结果进行后处理。
例如,可以使用以下代码求解模型并绘制结果:matlab.result = solvepde(model);pdeplot(model,'XYData',result.NodalSolution);这将绘制出6节点三角形单元的有限元解。
总结:在MATLAB中处理6节点三角形单元,首先需要创建网格,然后定义材料属性和边界条件,最后求解模型并进行后处理。