子弹轨迹模拟

模拟子弹

题目

一子弹以45度角斜上方向射入空中,假定无量纲初始速度分量水平和垂直方向均为50,重力加速度为10,质量为1,
空气阻力与速度的平方成正比,系数为0.2。

列出微分方程并编程计算

1) 子弹到达最高点所需时间

2) 子弹落地点和出发点的距离

代码

function bullet
opts1=odeset(‘events’,@event1);
opts2=odeset(‘events’,@event2);
global k m g %定义全局要用的常量
k=0.2;m=1;g=10; %对要用的常量赋值
begin=[0;50;0;50];%初始条件
[t,y,thigh]=ode45(@f,[0:0.1:40],begin,opts1);%解方程找到达最高点所用时间
disp(sprintf(‘到达最高点用时%ds’,thigh))
[t,y,tfar,t1,i1]=ode45(@f,[0:0.1:40],begin,opts2); %解方程找最远点距离
comet(y(:,1),y(:,3))
axis([0 200 0 80])
disp(sprintf(‘落地点到出发点距离%dm’,t1(2,1)))%找出落地时x的坐标
end

function [value,isterminal,direction]=event2(t,y)
value=y(3);
isterminal=1;
direction=[];
end

function [value2,isterminal2,direction2]=event1(t,y),
value2=y(4);
isterminal2=1;
direction2=-1;
end

function ydot=f(t,y)
global k m g
ydot=[y(2);
-k.*y(2);
y(4);
-k.y(4)-mg];
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值