您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Matlab在导弹追击问题上的应用
微分、积分和常微分方程Matlab实验数值积分常用的方法(1)用不定积分计算定积分:牛顿-莱布尼兹公式,但是有时得不到原函数;(2)定义法,取近似和的极限:高等数学中不是重点内容但数值积分的各种算法却是基于定义建立的0limbn1ii1ii0af(x)dxf(ξ)(xx)数值微积分(梯形公式和辛普森公式)trapz(x,y),按梯形公式计算近似积分;其中步长x=[x0x1…xn]和函数值y=[f0f1…fn]为同维向量;q=quad(‘fun’,a,b,tol,trace,P1,P2,...)(低阶方法,辛普森自适应递归法求积分)q=quad8(‘fun’,a,b,tol,trace,P1,P2,...)(高阶方法,自适应法Cotes求积分)在同样的精度下高阶方法quad8要求的节点较少。例:数值积分X=0:pi/100:pi;Y=sin(X);Z1=trapz(X,Y)Z2=quad('sin',0,pi)Z1=1.9998z2=2.0000计算定积分0sinxdx的值。解:将积分区间100等分,步长为100,程序:求解常微分方程考虑一阶常微分方程初值问题:0)(),,(yaybxayxfdxdy求解析解增加很大的难度数值解则没有本质困难。一阶常微分方程数值解法[x,y]=ode23('fun',tspan,y0,option)(低阶龙格-库塔函数)[x,y]=ode45('fun',tspan,y0,option)(高阶龙格-库塔函数)其中,(1)tspan=[t0,tf],t0、tf为自变量的初值和终值(2)option用于设定误差限(缺省时设定相对误差10-3,绝对误差10-6),命令为:options=odeset(’reltol’,rt,’abstol’,at),rt,at:分别为设定的相对误差和绝对误差.1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成.2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.注意:设位于坐标原点的甲舰向位于x轴上点A(1,0)处的乙舰发射导弹,导弹头始终对准乙舰。如果乙舰以最大的速度v0(是常数)沿平行于y轴的直线行驶,导弹的速度是5v0,(1)画出导弹运行的曲线方程.(2)乙舰行驶多远时,导弹将它击中?导弹追击问题解:假设导弹在t时刻的位置为P(x(t),y(t)),乙舰位于),1(0tvQ.由于导弹头始终对准乙舰,故此时直线PQ就是导弹的轨迹曲线弧OP在点P处的切线,即有xytvy1'0即yyxtv')1(0(1)又根据题意,弧OP的长度为AQ的5倍,即tvdxyx0025'1(2)由(1),(2)消去t整理得模型:(3)'151)1(2yyx初值条件为:0)0(y0)0('y1.建立m-文件eq1.mfunctiondy=eq1(x,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=1/5*sqrt(1+y(1)^2)/(1-x);2.取x0=0,xf=0.9999,建立主程序ff6.m如下:x0=0,xf=0.9999[x,y]=ode23('eq1',[x0xf],[00]);plot(x,y(:,1),’b.')结论:导弹大致在(1,0.2)处击中乙舰2151'')1(yyx)1/(151''21221xyyyy令y1=y,y2=y1’,将方程(3)化为一阶微分方程组。
本文标题:Matlab在导弹追击问题上的应用
链接地址:https://www.777doc.com/doc-5677326 .html