您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > matlab求解数学与物理问题
HaiNanUniversity1HaiNanUniversityMATLAB————应用篇海南大学数学系王浩华HaiNanUniversity2一、炮弹发射的角度问题将炮弹发射视为斜抛运动,已知初始速度为200米/秒,问要击中水平距离360米,垂直距离160米的目标,当忽略空气阻力时发射角应为多少?进一步思考:如果要考虑水平方向的阻力且设阻力与(水平方向)速度成正比,系数是0.1,结果又如何?分析:首先建立坐标系,如下图y(360,160)OxHaiNanUniversity3第一种情况:忽略空气阻力根据抛物运动的规律,在水平方向上,炮弹是匀速直线运动。在t时刻下,运动方程是:00cos()tvx(1)在垂直方向上,在t时刻的运动方程是:2001sin()2vtgty(2)其中参数0200/vms;00(,)(360,160)xy。需要确定?,?t具体求法有两种方法:a)图解法;b)解析法HaiNanUniversity4a)图解法利用消元法,消去参变量t,得到2360tan()4.93.324/cos160(3)这是一个非线性方程,在区间[0,2]上,利用Matlab软件画出曲线图形1如下a=0:0.1:2*pi;y1=160;t=1.8./cos(a);y=360*tan(a)-15.876./cos((a).^2);plot(a,y,a,y1,'r',a,t,'b'),grid01234567-1.5-1-0.500.511.522.53x104图1方程2360tan()4.93.324/cos160在区间[0,2]上的曲线图HaiNanUniversity5由图形知道,根据微积分学中的介值定理,在0~2之间,方程(3)有两个解:一个介于0~1之间,利用图形放大法,可找出方程(3)的该近似根大约为0.46,如下图2;另一个介于3~4之间,大约为3.6。(该图形略)00.10.20.30.40.50.60.70.80.91-10001002003004005006000.40.410.420.430.440.450.460.470.480.490.5135140145150155160165170175180185图2在[0,1]区间上用图形放大法求解的效果图图形法得到的结果简洁、直观,且易于理解。HaiNanUniversity6b)解析法非线性方程组模型为:00cos()tvx(1)2001sin()2vtgty(2)其中参数0200/vms;00(,)(360,160)xy。在Matlab软件中,只需输入:(注:x)[t,x]=solve('t*200*cos(x)=360','200*sin(x)*t+1/2*10*t^2=160')t=2*(208+6*1191^(1/2))^(1/2)-2*(208+6*1191^(1/2))^(1/2)2*(208-6*1191^(1/2))^(1/2)-2*(208-6*1191^(1/2))^(1/2)HaiNanUniversity7仔细分析一下可以看出,该解太复杂!计算结果根本不能用。下面我们用迭代法来求解,为此,将原方程2360tan()4.93.24/cos160变形为12tan0.44440.0441/cosx=atan((-1/970*(208+6*1191^(1/2))^(3/2)+147/388*(208+6*1191^(1/2))^(1/2))/(-9/3880*(208+6*1191^(1/2))^(3/2)+468/485*(208+6*1191^(1/2))^(1/2)))atan((1/970*(208+6*1191^(1/2))^(3/2)-147/388*(208+6*1191^(1/2))^(1/2))/(9/3880*(208+6*1191^(1/2))^(3/2)-468/485*(208+6*1191^(1/2))^(1/2)))+piatan((-1/970*(208-6*1191^(1/2))^(3/2)+147/388*(208-6*1191^(1/2))^(1/2))/(-9/3880*(208-6*1191^(1/2))^(3/2)+468/485*(208-6*1191^(1/2))^(1/2)))atan((1/970*(208-6*1191^(1/2))^(3/2)-147/388*(208-6*1191^(1/2))^(1/2))/(9/3880*(208-6*1191^(1/2))^(3/2)-468/485*(208-6*1191^(1/2))^(1/2)))-piHaiNanUniversity8编程如下:x=0;fork=1:20x=atan(0.444+0.0441/(cos(x))^2);endxx=0.4629?问题:为什么使用迭代法只得到一个解?原因很简单,因为目标坐标是(360,160),它位于第一象限,那么炮弹的发射角度一定在0~2之间。进一步思考:如果要考虑水平方向的阻力且设阻力与(水平方向)速度成正比,系数是0.1,结果又如何?HaiNanUniversity9与第一个模型进行比较,主要区别在于水平方向上,炮弹的运动不在是匀速直线运动了,而是变速运动。水平方向上,炮弹的运动表示为0.1cos()dvvdt初始条件:0200/vms解此微分方程得到200exp(0.1cos())vt,即200exp(0.1cos())dxtdt初始条件:(0)0x积分得到2000(1exp(0.1cos()))cosxt(3)201sin()2yvtgt(4)HaiNanUniversity10由(3)解得10cosln1cos2000xt代入(4)得到2236cos49036cos2000tanln1ln1160200cos200利用Matlab命令来求此方程的根。先建立M-file:diedai.mfunctiony=diedai(x)y=160+2000*tan(x)*log(1-36*cos(x)/200)+490/(cos(x))^2*(log(1-36*cos(x)/200))^2;然后输入命令:x0=0;[x,fval]=fzero(@diedai,x0)HaiNanUniversity11回车得到x=0.4733fval=-9.2371e-014t=-10/cos(x)*log(1-36*cos(x)/200)t=1.9617即此时的0.4773,炮弹射中目标(360,160)所需时间大约是t=1.9617再来求时间:HaiNanUniversity12流出湖区V流入r二、湖水污染问题设一容积为V(m3)的大湖受到某种物质的污染,污染物均匀地分布在湖中,没湖水更新的速率为r(m3/天),并假设湖水的体积没有变化,试建立湖水污染浓度的数学模型。(1)美国安大略湖容积5941*109(m2),湖水的流量为4.45365*1010(m3/天)。湖水现阶段的污染浓度为10%,外面进入湖中的水的污染浓度为5%,并假设该值没有变化,求经过500天湖水污染浓度。(2)美国密西根湖的容积为4871*109(m2)。湖水的流量为3.6635132*1010(m3/天).由于治理污染措施得力及某时刻起污染源被切断,求污染被中止后,污染物浓度下降到原来的5%所需时间。HaiNanUniversity13模型假设1、湖水流量为常量,湖水体积为常量;2、流入流出湖水水污染浓度为常量,符号说明W(t):t时刻水污染浓度t:时间,以天作单位m:外进湖中水污染浓度r:湖水的更新速率V:湖水的体积问题分析问题(一)要求经过500天湖水的浓度,由于流入和流出的湖水浓度不同,我们在考虑此问题时,运用微积分方程和质量守恒定律得出水污染浓度与已知量之间的关系;问题(二)污染源被切断的情况,即湖水的污染浓度不再改变,即m=0,由于问题(二)给出污染物浓度下降到原来的5%,从而可以求得所需的时间。HaiNanUniversity14模型的建立与求解设t时刻湖区的污染物浓度为W(t),考虑时间区间[t,t+⊿t]并利用质量守恒定律:[t,t+⊿t]内湖中污染浓度的变化量=流入湖水的污染量—流出湖水的污染量。用数学表达式表示为:V[w(t+⊿t)—w(t)]=rm*⊿t—t()ttrwsds于是得,令⊿t→0dw/dt=a-bwt0,w(0)=wo其中a=rm/V,b=r/V求得w(t)=m+(wo-m)e^(-r*t/V)(1)问题(一)中V=5.941e12(m3),r=4.45365e10,wo=10%,m=5%,t=500代入式中,得:w(500)=5.1178%问题(二)中,m=0,从而rm*⊿t=0,其中V=4.871e12,r=3.6635132e10,w(t)=5%*wo代入表示式(1)中,得:t=398.3(天)。HaiNanUniversity15用MATLAB解问题(一)过程如下:r=4.45365e10;V=5.941e12;wo=10;m=5;t=500;w=m+(wo-m).*exp(-r.*t/v)结果:w=5.1178问题(二)r=3.6635132e10;v=4.871e12;m=0;w=0.05wo;w=m-(wo-m)*exp(-r*t/v)a=log(w);y=a.*(-v)/r结果:y=398.3120HaiNanUniversity16三、经济增长模型增加生产、发展经济所依靠的主要因素有增加投资、增加劳动力以及技术革新等,在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易定量化,作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学发展不快时,如资本主义经济发展的前期,这种模型是有意义的。用Q,K,L分别表示产值、资金、劳动力,要寻求数量关系Q(K,L)。经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas生产函数:(,)QKLaKL,0,1(*)式中,,a要由经济统计数据确定。HaiNanUniversity17现有美国马萨诸塞州1900—1926年上述三个经济指数的统计数据,如表1,试用数据拟合的方法,求出(*)式中的参数,,a。表1TQKLTQKL19001.051.041.0519131.952.821.6819011.181.061.0819142.013.241.6519021.291.161.1819152.003.241.6219031.301.221.2219162.093.611.8619041.301.271.1719171.964.101.9319051.421.371.3019182.204.361.9619061.501.441.3919192.124.771.9519071.521.531.4719202.164.751.9019081.461.571.3719212.084.541.5819091.602.051.4319222.244.541.6719101.692.511.5819232.564.581.8219111.812.631.5919242.344.581.6019121.932.741.6619252.454.581.6119262.584.541.64HaiNanUniversity18第一种方法:由于产值Q、资金K、劳动力L之间满足著名的Cobb-Douglas生产函数关系:(,)QKLaKL,0,1我们可以用MATLAB软件中的curvefit()程序来作数据拟合,即寻求函数Q(K,L)中的未知参数a,α,β,使这个函数尽量逼近表1所给出的统计数据。现在我们就根据curvefit(
本文标题:matlab求解数学与物理问题
链接地址:https://www.777doc.com/doc-6203460 .html