MATLAB在材料科学中的应用举例
摘 要
本文通过介绍MATLAB软件在材料科学中的运用,体现出了MATLAB语言的特点以及强大的图像处理能力和其丰富的工具箱给用户带来的方便、快捷的运算处理数据的能力。加之其以矩阵为最小的单位,使其更易懂、易学。。
在正文中,首先采用L系统与迭代函数系统(IFS)分形绘制方法,通过数学实验的形式绘制分形植物,模拟的分形植物细节丰富,形态生动逼真,体现出了MATLAB在绘图与函数处理中的优势。接着介绍了其在聚合物改性水泥砂浆的线性回归研究中的作用。最后,通过MATLAB在结构化学的应用,证实了MATLAB精确的数值与符号运算能力,强大的作图与拟合功能,在工程技术领域应用广泛。
最后,每个人在这次课程设计完成后,谈了一下在学习、和课程设计中的感受,觉得通过对MATLAB的学习,让我们了解到了数学并不仅仅是传统的数学,更值得我们去开发和专研。
关键词:MATLAB 材料科学 分形植物 课程设计 数学
引言
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的一款优秀的数学计算软件,其强大的数值计算能力和数据可视化能力令人震撼。其主要包括MATLAB和Simulink两大部分。到今天其已发展到R2011B版本,是应用数学、信息与计算科学等专业本科生和研究生必须掌握的基本技能。
其主要具有5项功能,数值计算功能、符号计算功能、图形与数据可视化功能、可视化建模仿真功能、与其他环境联合编程的功能。这些功能让其在各个领域都能起到强大的作用。
材料科学是研究材料的组织结构、性质、生产流程和使用效能,以及它们之间相互关系的科学。材料科学是多学科交叉与结合的结晶,是一门与工程技术密不可分的应用科学。中国的材料科学研究水平位居世界前列,有些领域甚至居于世界领先水平。
1 M A T L A B分形植物模拟
1.1 L系统与迭代函数系统
1.1.1 L系统
L系统是美国生物学家Lindenm ayer1968年为模拟生物形态而设计的描述植物形态与生长的方法。L系统实际上是字符串重写系统。即把字符串解释成图形,于是只要能生成字符串,也就等于生成了图形。从一个初始串(叫做公理)记为W开始,将生成规则尸多次作用于其上,最后产生一个较长的命令串,用它来绘图。
对于L系统可以用较复杂的图形解释,在除了模拟植物分支拓扑结构外,还要加上线段长度和转角等几何形状。L系统的符号串也称“龟行图”(turtle),即设想一只鸟龟在平面上爬行,鸟龟的状态用三元组(X,Y,D)表示,其中X和Y分别代表横坐标和纵坐标,D代表当前的朝向。令δ是角度增量,h是步长。文中所用L系统的符号规定与解释:F:从当前位置向前移一步,步长为h,同时画线;G:从当前位置向前移一步,步长为h,但不画线;十:从当前方向逆时针转一个给定的角度δ;一:从当前方向顺时针转一个给定的角度δ;| :原地转向180°;[:Push,将龟行图当前状态压进栈(stack); ]: Pop,将图形状态重置为栈顶的状态,并去掉该栈中的内容;A:记录状态的方向;Z记录当前的位置。
1.1.2 迭代函数系统(IFS)
迭代函数系统是分形绘制的典型重要方法。其采用确定性算法与随机性算法相结合的办法生成植物杆茎或叶片等分形图。“确定性”指用以迭代的规则是确定性的,它们由一组仿射变换(如等)构成;“随机性”指迭代过程是不确定的,即每一次究竞迭代哪一个规则是随机性的,设最终要生成的图形(植物形态图)为M,它要满足集合方程:M=R1∪ R2∪…∪RN公式的含义是,随机地从Ri(i=1,…,N)中挑选一个迭代规则迭代一次,然后再随机地在Ri(i=1,…,N)中选一个规则迭代一次,不断重复此过程,最后生成的极限图形M就是欲求的植物形态图。
1.2分形植物模拟
L系统用于植物结构绘制,比如一棵树,它是分支结构,即一根树干带大量的分枝,每个分枝都有一个终点,是一种一个起点多个终点的图形。这就意味着在某一运算中,当画到一个分枝的尽头时画笔必须退回来再画其它结构,即产生一种所谓进退操作。该操作符号是一对方括号[·],方括号中是3个简单符号,即F,+,-。当执行完方括号中的指令后,画笔回到方括号“[”前的位置并保持原方向不变。设公理W:F;生成规则P:F→FF+[F-F-F]-[-F+F+F];角度增量α:22.5°。在公理中,从起点往上两步后,先后做出两个分枝,而每个
分枝又分别右凸左凸,最后形成一棵风吹动着树的模样。其程序代码设计如下:在命令窗口运行Ltree(n),结果如图。
function L tree (n);
S='F';a=pi/8;A=pi/2;z=0;zA=[0,pi/2];
p='FF+[+F-F-F]-[-F+F+F]';
for k=2n;
S=streep (S,'F',p);
end
figure;hold on;
for k=1;length (S);
switch S (k);
case'F'
plot([z,z+exp(i*A)],'linewidth',2);
z=z+exp(i*A);
case'+'
A=A+a;
case'-'
A=A-a;
case'['
zA=[zA;[z,A]];
case']'
z=zA (end,1);
A=zA (end,2);
zA (end,;)=[];
otherwise
end
endmatlab学好了有什么用
在实际的分形图中,常常由随机迭代生成带梗的植物叶子,即在原来的1「5中增加一组随机数。这样生成的叶子通过3个仿射变换及相应的概率向量决定。设二维仿射变换的形式为
利用表1中仿射变换的参量可以生成带梗的植物叶子—分形厥叶。
程计如下:在命令窗口运行IFSJ(n)图形结果如图2所示。
function [xx,yy]= IFSJ (N)
x=0;y=0;p=rand(1,N);
AA=[0,0,0.16,0,0,0;0.85, -2.5/180*pi,0.85,-2.5/180*pi,0,1.6;…
0.3,49/180*pi,0.34,49/180*pi,0,1.6;0.3,120/180*pi,0.37,-50/180*pi,0,0.44];
xx=zeros(N,1); yy=zeros(N,1);
for ss=1:N;
if p(1,ss)<=0.005;
[x,y]=IFS(x,y,AA(1,1),AA(1,2),AA(1,3),AA(1,4),AA(1,5),AA(1,6));
elseif p(1,ss)<=0.805;
[x,y]=IFS(x,y,AA(2,1),AA(2,2),AA(2,3),AA(2,4),AA(2,5),AA(2,6));
elseif p(1,ss)<=0.9025;
[x,y]=IFS(x,y,AA(3,1),AA(3,2),AA(3,3),AA(3,4),AA(3,5),AA(3,6));
else
[x,y]=IFS(x,y,AA(4,1),AA(4,2),AA(4,3),AA(4,4),AA(4,5),AA(4,6));
end
xx(ss)=x; yy(ss)=y;
end
plot(xx,yy,'.b','markersize',2);
set(gcf,'color','w')
axis square off;
%带概率的仿射变换函数
function [xp,yp]=IFS(x,y,r,thita,s,phi,h,k)
xp=r*x*cos(thita)-s*y*sin(phi)+h;
yp=r*x*sin(thita)+s*y*cos(phi)+k;
return
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论