matlab是强大的科学计算软件,下面介绍一下这款软件强大而有特色的用途。
矩阵运算
mtalab最强的项目就是矩阵运算,计算效率远远高于c/c++,是常用的工程计算线性方程组的计算软件。
mtalb强大的作图功能
mtalab具有强大的3d绘图功能,函数调用简单,并且很多功能都以工具箱的方式可供应用,即使是没有接触过matlab,学会绘制3d图,也很容易
数据拟合功能
matlab具有强大数据分析拟合能力,常用的拟合工具箱cftool
数值积分微分运算
matlab内部有现成的一些常用的数值计算方法,例如牛顿法、高斯法等,同时matlab也可以进行符号运算,进行符号积分以及微分运算,这是让人振奋的功能!
matlab还可以进行仿真实验,以及图像处理等等专业功能,希望以上经验能够有助于你了解学习matlab 。
matlab数学建模应用例题
仅举一些运用matlab的例子,这些问题在数学建模中时常遇到,希望能帮助同学们在短时间内方便、快捷的使用matlab 解决数学建模中的问题,并善用这一工具。 常用控制命令:
clc:%清屏; clear:%清变量; save:%保存变量; load:%导入变量
一、利用公式直接进行赋值计算
本金p以每年n次,每次i%的增值率(n与i的乘积为每年增值额的百分比)增加,当增加到r×p 时所花费的时间t为:(利用复利计息公式可得到下式)
)
01.01ln(ln)01.01(inr
tipprnt
(12,5.0,2nir)
matlab 的表达形式及结果如下: 》》 r=2;i=0.5;n=12; %变量赋值 》》 t=log(r)/(n*log(1+0.01*i)) 计算结果显示为:
t = 11.5813
即所花费的时间为t=11.5813 年。
分析:上面的问题是一个利用公式直接进行赋值计算问题,实际中若变量在某个范围变化取很多值时,使用matlab,将倍感方便,轻松得到结果,其绘图功能还能将结果轻松的显示出来,变量之间的变化规律将一目了然。
若r在[1,9]变化,i在[0.5,3.5]变化;我们将matlab的表达式作如下改动,结果如图1。 r=1:0.5:9; i=0.5:0.5:3.5; n=12;
p=1./(n*log(1+0.01*i)); t=log(r‘)*p; plot(r,t)
xlabel(’r‘) %给x轴加标题 ylabel(’t‘) %给y轴加标题
q=ones(1,length(i));
text(7*q-0.2,[t(14,1:5)+0.5,t(14,6)-0.1,t(14,7)-0.9],num2str(i’))
从图1中既可以看到t随r的变化规律,而且还能看到i的不同取值对t—r曲线的影响(图中的六条曲线分别代表i的不同取值)。
二、方程组的求解
求解下面的方程组:12
29447535
.768321
321321xxxxxxxxx
分析:对于线性方程组求解,常用线性代数的方法,把方程组转化为矩阵进行计算。
baxbax1
bax
matlab 的表达形式及结果如下: 》》 a=[8 1 6;3 5 7;4 9 2]; %建立系数矩阵 》》 b=[7.5;4;12]; %建立常数项矩阵 》》 x=a %求方程组的解 计算结果显示为: x =
1.2931 0.8972 -0.6236
三、数据拟合与二维绘图
在数学建模竞赛中,我们常会遇到这种数据表格问题,如果我们仅凭眼睛观察,很难看到其中的规律,也就更难写出有效的数学表达式从而建立数学模型。因此可以利用matlab的拟合函数, 即polyfit() 函数,并结合matlab的绘图功能(利用plot()函数),得到直观的表示。
例:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如下表:
分析:
matlab 的表达形式如下:
t=[1:16]; %数据输入
y=[4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]; plot(t,y,‘o’) %画散点图 p=polyfit(t,y,2) %二次多项式拟合 hold on
xi=linspace(0,16,160); %在[0,16]等间距取160 个点 yi=polyval(p,xi); %由拟合得到的多项式及xi,确定yi plot(xi,yi) %画拟合曲线图 执行程序得到图2
显示的结果为 p=
-0.0445 1.0711 4.3252
p的值表示二阶拟合得到的多项式为:y= -0.0445t2
+1.0711t+ 4.3252
下面是用lsqcurvefit()函数,即最小二乘拟合方法的matlab表达: t=[1:16];
y=[4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]; x0=[0.1,0.1,0.1];
zuixiao=inline(‘x(1)*t.^2+x(2)*t+x(3)’,‘x’,‘t’); x=lsqcurvefit(zuixiao,x0,t,y) %利用最小二乘拟合 其显示的结果为: x =
-0.0445 1.0711 4.3252
可以看出其得到的结果与polyfit函数的结果相同。这说明在多项式拟合问题上这两个函数的效果是相同的。
下面的一个例子将体现lsqcurvefit()函数的优势。
例2: 在物理学中,为研究某种材料应力与应变的关系,测得一组数据如下表:
如果假定应力与应变有如下关系(σ为应力值,ε为应变值):ε=a+blnσ 试计算a 、b 的值。 matlab 的表达形式如下:
x=[925,1125,1625,2125,2625,3125,3625]; y=[0.11,0.16,0.35,0.48,0.61,0.71,0.85]; plot(x,y,‘o’)
[p,resid1]=polyfit(x,y,2) hold on
xi=linspace(700,3700,3000); yi=polyval(p,xi); plot(xi,yi) x0=[0.1,0.1];
fff=inline(‘a(1)+a(2)*log(x)’,‘a’,‘x’); [a,resid2]=lsqcurvefit(fff,x0,x,y) plot(xi,fff(a,xi),‘r’)
执行程序得到图3,图中蓝色曲线为利用polyfit()函数得到的曲线,红色曲线为利用lsqcurvefit()函数得到的曲线;
其显示的结果为: p =
-0.0000 0.0004 -0.2266 resid1 =
r: [3x3 double] df: 4 normr: 0.0331 a =
-3.5810 0.5344 resid2 = 0.0064
其中a的值代表利用lsqcurvefit()函数得到的关系为:ε=-3.5810+0.5344σ
resid1、resid2 分别代表运用polyfit()函数、lsqcurvefit()函数得到的残差。可以看出利用lsqcurvefit()函数残差更小,即得到了更好的拟合效果。
在数学建模的实际问题中,如果问题的机理不明,我们只能采用polyfit()函数,即多项式拟合的方法,以获得近似的数据描述函数;但如果通过分析,可以得到一些机理,那么采用最小二乘的方法将得到更好的效果,而且得到的拟合函数也更有意义。
四、隐函数的图形绘制
plot()只能绘制显函数图形,对于形如
0)sin()1ln(ln1
xxyyy
的复杂隐函数,很难转化为显函数并利用plot()函数绘制图形,这时就可以用ezplot()函数直接绘制其曲线。 matlab的表达形式如下:
》》 ezplot(‘1/y-log(y)+log(-1+y)+x-sin(x)’) 执行程序得到图5
如果是形如下面的参数方程),0(,sin3sin,cos3sintttyttx,同样可以利用ezplot()函数绘制其曲线。matlab的表达形式如下:
》》 ezplot(‘sin(3*t)*cos(t)’,‘sin(3*t)*sin(t)’,[0,pi]) 执行程序得到图6。
斗争升级 苹果欲阻止诺基亚进入美国
应对互联网视频,Tensilica 388VDO支持Real
价格飙!全面屏新旗舰来了:小米MIX劲敌
教你们如何挑选一款高性价比牵引车?
魅族16s Pro获中国手机设计最高奖
matlab应用实例
基于状态机的简易RISC CPU设计
安泰线材测试仪在汽车连接器线束测试中的应用
三/双/单模 CDMA LNA/混频器接收器系统要求
5G入门门槛需要动态调整,5G手机终端普及率需要提升
小米9被誉为“战斗天使”,可能是小米目前最值得入手的手机了
光网络向高速灵活开放协同发展,灵活低成本是网络技术的发展方向
二次回路的基本概念
Infinite Memory两款OPT闪存亮相IIC
如何使用gprof对软件做profiling (一)
使用统一且可扩展的SMARC EVK平台加快评估流程
边缘计算助力了智慧运营哪方面
基于机器视觉的印刷品质量控制解决方案
MK1808H:高频AC-DC同步整流控制器的可靠之选
微波雷达感应模组—家庭监控安防技术发展