MATLAB应用实例分析例分析

上传人:re****.1 文档编号:490293005 上传时间:2022-11-10 格式:DOCX 页数:15 大小:60.23KB
返回 下载 相关 举报
MATLAB应用实例分析例分析_第1页
第1页 / 共15页
MATLAB应用实例分析例分析_第2页
第2页 / 共15页
MATLAB应用实例分析例分析_第3页
第3页 / 共15页
MATLAB应用实例分析例分析_第4页
第4页 / 共15页
MATLAB应用实例分析例分析_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《MATLAB应用实例分析例分析》由会员分享,可在线阅读,更多相关《MATLAB应用实例分析例分析(15页珍藏版)》请在金锄头文库上搜索。

1、MATLAB应用实例分析例分析Matlab应用例题选讲仅举一些运用MATLAB的例子,这些问题在数学建模中时常遇到,希望能帮助 同学们在短时间内方便、快捷的使用MATLAB解决数学建模中的问题,并善用这一工具。常用控制 命令:clc:%清屏;clear:%清变量;save:%保存变量;load:%导入变量一、利用公式直接进行赋值计算本金P以每年n次,每次i%的增值率(n与i的乘积为每年增值额的百分比)增 加,当增加到rXP时所花费的时间T为:(利用复利计息公式可得到下式)lnrnT() r,P,P(1,0.01i),T,r,2,i,0.5,n,12nln(1,0.01i)MATLAB 的表达形

2、式及结果如下: 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

3、)*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)40350.5302520T 1151.510 22.55 33.50123456789r图11从图1 中既可以看到 T 随 r 的变化规律,而且还能看到 i 的不同取值对 Tr 曲线的影响(图中的六条曲线分别代表i的不同取值)。二、已知多项式求根65432 已知多项式为,求其根。 h,x,10x,31x,10x,116x,200x,9

4、6分析:对多项式求根问题,我们常用roots()函数。MATLAB的表达形式及结果 如下: h=roots(1 -10 31 -10 -116 200 -96) %中括号内为多项式系数由高 阶到常数。 计算结果显示为(其中 i 为虚数单位):-2.00004.00003.00002.0000 + 0.0000i2.0000 - 0.0000i1.0000如果已知多项式的根,求多项式,用poly ()函数。对上面得到的h的值求多项 式,其MATLAB的表达形式及结果如下:h=-2.0000 4.0000 3.0000 2.0000+0.0000i 2.0000-0.0000i 1.0000;c=

5、poly(h)计算结果显示为:c =1 -10 31 -10 -116 200 -96三、方程组的求解8x, x,6x,7.5,123,求解下面的方程组:3x, 5x, 7x,4,123,4x,9x, 2x,12123,分析:对于线性方程组求解,常用线性代数的方法,把方程组转化为矩阵进行 计算。,1 ,x,abax,b,x,abMATLAB 的表达形式及结果如下: a=8 1 6;3 5 7;4 9 2; %建立系数矩阵 b=7.5;4;12; %建立常数项矩阵 x=ab %求方程组的解计算结果显示为:1.29310.8972-0.6236四、数据拟合与二维绘图 在数学建模竞赛中,我们常会遇到

6、这种数据表格问题,如果我们仅凭眼睛观 察,很难看到其中的规律,也就更难写出有效的数学表达式从而建立数学模型。因 此可以利用MATLAB的拟合函数,即polyfit()函数,并结合MATLAB的绘图功能(利用plo t()函数),得到直观的表示。2例:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据 如下表:1 2 3 4 5 6 7 8 T(分)y 4 6.4 8.0 8.4 9.28 9.5 9.7 9.869 10 11 12 13 14 15 16 T(分)y 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6分析:MATLAB 的表达形式

7、如下: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.5510.58 10.6;plot(t,y,o) %画散点图p=polyfit(t,y,2) %二次多项式拟合hold onxi=linspace(0,16,160); %在0,16等间距取 160 个点yi二polyval(p,xi); %由拟合得到的多项式及xi,确定yi plot(xi,yi) %画拟合曲线图执行程序得到图 2;11109876540246810121416图2显示的结果为p=0.0445 1.0711 4.3252 -2

8、p的值表示二阶拟合得到的多项式为:y= -0.04451+1.07111+ 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(l)*t2+x(2)*t+x(3),x, t);x=lsqcurvefit(zuixiao,x0,t,y) %利用最小二乘拟合其显示的结果为:x =-0.0445 1.0711 4.3252可以看出其得

9、到的结果与 polyfit 函数的结果相同。这说明在多项式拟合问题 上这两个函数的效果是相同的。3下面的一个例子将体现lsqcurvefit()函数的优势。例 2: 在物理学中,为研究某种材料应力与应变的关系,测得一组数据如下表:925 1125 1625 2125 2625 3125 3625 应力 a0.11 0.16 0.35 0.48 0.61 0.71 0.85 应变 如果假定应力与应变有如下关系(a为应力值,为应变值):二a+blna试 计算 a 、b 的值。MATLAB 的表达形式如下:x=925,1125,1625,2125,2625,3125,3625; y=0.11,0.1

10、6,0.35,0.48,0.61,0.71,0.85; plot(x,y,o)p,resid1=polyfit(x,y,2)hold onxi=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,图中蓝色曲线为利用polyfi t()函数得到的曲线,红色曲 线为利用lsqcurvefit()函数得到的曲线;0.90.80.70.

11、60.50.40.30.20.10-0.15001000150020002500300035004000 其显示的结果为:p =-0.0000 0.0004 -0.2266 resid1 =R: 3x3 doubledf: 4normr: 0.0331a =-3.5810 0.5344resid2 =0.0064其中a的值代表利用lsqcurvefit()函数得到的关系为: =-3.5810+0.5344。4residl、resid2分别代表运用polyfit()函数、lsqcurvefit()函数得到的残 差。可以看出利用lsqcurvefit()函数残差更小,即得到了更好的拟合效果。在数学

12、建模的实际问题中,如果问题的机理不明,我们只能采用polyfi t()函 数,即多项式拟合的方法,以获得近似的数据描述函数;但如果通过分析,可以得到一些机理,那 么采用最小二乘的方法将得到更好的效果,而且得到的拟合函数也更有意义。五、隐函数的图形绘制1plot()只能绘制显函数图形,对于形如的复杂隐函数,很难转化为,lny.ln(,1, y), x,sin(x),0y显函数并利用plot()函数绘制图形,这时就可以用ezplot()函数直接绘制其 曲线。 MATLAB 的表达形式如下: ezplot(1/y-log(y)+log(-1+y)+x-sin(x)执行程序得到图 5x = sin(3

13、 t) cos(t), y = sin(3 t) sin(t)1/y-log(y)+log(-1+y)+x-sin(x) = 060.440.220-0.2yy0-0.4-2-0.6-4-0.8-6-0.8-0.6-0.4-0.200.20.40.60.8-6-4-20246xx图5图6如果是形如下面的参数方程,同样可以利用ezplot()函数绘制其曲 x,sin3tcost,y,sin3tsint,t,(0,)线。MATLAB 的表达形式如下: ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),0,pi) 执行程序得到图 6。六、三维图形绘制假设有一个时间向量t,

14、对该向量进行下列运算则可以构成三个坐标值向量 x,sint,y,cost,z,t对于上面的方程可以利用ezplot3()函数或plot3()函数绘制三维曲线。这里 仅列举ezplot3()函数的使用。MATLAB 的表达形式如下: ezplot3(sin(t),cos(t),t,0,6*pi)执行程序得到图 7:3 绘制下述曲面:z(r,),rcos(3,),其中 0,r,1,0,2,MATLAB 的表达形式如下: nr=12;nth=50;r=linspace(0,1,nr); theta=linspace(0,2*pi,nth);R,T=meshgrid(r,theta) x=cos(th

15、eta)*r;5y=sin(theta)*r;surf(x,y,R3 .* cos(3 *T)执行程序得到图 8。x = sin(t), y = cos(t), z = t201510z5010.510.500-0.5-0.5-1-1yx图7 图 8除了 surf ()函数还有 surfc()、surfl()、mesh()、waterfall ()函数也用于曲 面的绘制,具体效果如图 9 所示,可以针对自己的需要选取适合的曲面绘制函数。图9MATLAB 作图之三维绘图示例山体绘制%三维绘图示例山体绘制%mesh 函数演示x=1.0:0.1:2.0;y=2.0:0.1:3.0;X,Y=meshgrid(x,y);z=5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号