资源描述:
《matlab应用实例分析new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab应用例题选讲仅举一些运用MATLAB的例子,这些问题在数学建模中时常遇到,希望能帮助同学们在短时间内方便、快捷的使用MATLAB解决数学建模中的问题,并善用这一工具。常用控制命令:clc:%清屏;clear:%清变量;save:%保存变量;load:%导入变量一、利用公式直接进行赋值计算本金P以每年n次,每次i%的增值率(n与i的乘积为每年增值额的百分比)增加,当增加到r×P时所花费的时间T为:(利用复利计息公式可得到下式)()MATLAB的表达形式及结果如下:>>r=2;i=0.5;n=12;%变量赋值
2、>>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
3、*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'))图15从图1中既可以看到T随r的变化规律,而且还能看到i的不同取值对T—r曲线的影响(图中的六条曲线分别代表i的不同取值)。二、方程组的求解求解下面的方程组:分析:对于线性方程组求解,常用线性代数的方法,把方程组转化为矩阵进行计
4、算。MATLAB的表达形式及结果如下:>>a=[816;357;492];%建立系数矩阵>>b=[7.5;4;12];%建立常数项矩阵>>x=ab%求方程组的解计算结果显示为:x=1.29310.8972-0.6236三、数据拟合与二维绘图在数学建模竞赛中,我们常会遇到这种数据表格问题,如果我们仅凭眼睛观察,很难看到其中的规律,也就更难写出有效的数学表达式从而建立数学模型。因此可以利用MATLAB的拟合函数,即polyfit()函数,并结合MATLAB的绘图功能(利用plot()函数),得到直观的表示。例:在化学反
5、应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如下表:T(分)12345678y46.48.08.49.289.59.79.86T(分)910111213141516y1010.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)%二次多项式拟合hold
6、onxi=linspace(0,16,160);%在[0,16]等间距取160个点yi=polyval(p,xi);%由拟合得到的多项式及xi,确定yiplot(xi,yi)%画拟合曲线图执行程序得到图2;5图2显示的结果为p=-0.04451.07114.3252p的值表示二阶拟合得到的多项式为:y=-0.0445t2+1.0711t+4.3252下面是用lsqcurvefit()函数,即最小二乘拟合方法的Matlab表达:t=[1:16];y=[46.488.49.289.59.79.861010.210.321
7、0.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=lsqcurvefit(zuixiao,x0,t,y)%利用最小二乘拟合其显示的结果为:x=-0.04451.07114.3252可以看出其得到的结果与polyfit函数的结果相同。这说明在多项式拟合问题上这两个函数的效果是相同的。下面的一个例子将体现lsqcurvefit()函数的优势。例2:在物理学中,为研究某种材料应力与应变的关系,
8、测得一组数据如下表:应力σ925112516252125262531253625应变ε0.110.160.350.480.610.710.85如果假定应力与应变有如下关系(σ为应力值,ε为应变值):ε=a+blnσ试计算a、b的值。MATLAB的表达形式如下:x=[925,1125,1625,2125,2625,3125,3625];y=[0.