资源描述:
《(2)matlab应用实例分析34557》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab应用例题选讲仅举一些运用MATLAB的例子,这些问题在数学建模中时常遇到,希望能帮助同学们在短时间内方便、快捷的使用MATLAB解决数学建模中的问题,并善用这一工具。常用控制命令:clc:%清屏;clear:%清变量;save:%保存变量;load:%导入变量一、利用公式直接进行赋值计算本金P以每年n次,每次i%的增值率(n与i的乘积为每年增值额的百分比)增加,当增加到r×P时所花费的时间T为:(利用复利计息公式可得到下式)()MATLAB的表达形式及结果如下:>>r=2;i=0.5;n=12;%变量赋值>>T=log(r)/(n*log(1+0.01*i))计算结果显
2、示为: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=on
3、es(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'))图18从图1中既可以看到T随r的变化规律,而且还能看到i的不同取值对T—r曲线的影响(图中的六条曲线分别代表i的不同取值)。二、已知多项式求根已知多项式为,求其根。分析:对多项式求根问题,我们常用roots()函数。MATLAB的表达形式及结果如下:>>h=roots([1-1031-10-116200-96])%中括号内为多项式系数由高阶到常数。计算结果显示为(其中i为虚数单位):h=-2.00004.00003.000
4、02.0000+0.0000i2.0000-0.0000i1.0000如果已知多项式的根,求多项式,用poly()函数。对上面得到的h的值求多项式,其MATLAB的表达形式及结果如下:>>h=[-2.00004.00003.00002.0000+0.0000i2.0000-0.0000i1.0000];>>c=poly(h)计算结果显示为:c=1-1031-10-116200-96三、方程组的求解求解下面的方程组:分析:对于线性方程组求解,常用线性代数的方法,把方程组转化为矩阵进行计算。MATLAB的表达形式及结果如下:>>a=[816;357;492];%建立系数矩阵>>b=[7
5、.5;4;12];%建立常数项矩阵>>x=ab%求方程组的解计算结果显示为:x=1.29310.8972-0.6236四、数据拟合与二维绘图在数学建模竞赛中,我们常会遇到这种数据表格问题,如果我们仅凭眼睛观察,很难看到其中的规律,也就更难写出有效的数学表达式从而建立数学模型。因此可以利用MATLAB的拟合函数,即polyfit()函数,并结合MATLAB的绘图功能(利用plot()函数),得到直观的表示。8例:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如下表:T(分)12345678y46.48.08.49.289.59.79.86T(分)910111213
6、141516y1010.210.3210.4210.510.5510.5810.6分析:MATLAB的表达形式如下:t=[1:16];%数据输入y=[46.488.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];plot(t,y,'o')%画散点图p=polyfit(t,y,2)%二次多项式拟合holdonxi=linspace(0,16,160);%在[0,16]等间距取160个点yi=polyval(p,xi);%由拟合得到的多项式及xi,确定yiplot(xi,yi)%画拟合曲线图执行程序得到图2;图2显示的结果为p=-0
7、.04451.07114.3252p的值表示二阶拟合得到的多项式为:y=-0.0445t2+1.0711t+4.3252下面是用lsqcurvefit()函数,即最小二乘拟合方法的Matlab表达:t=[1:16];y=[46.488.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];x0=[0.1,0.1,0.1];zuixiao=inline('x(1)*t.^2+x(2)*t+x(3)','x','t');x=