我给了我一个作业,该作业指出:编写一个函数,以给定初始速度和角度(水平线以上)在地平线上方确定弹丸的水平和垂直位置。您的函数应将线性阻力与阻力系数k合并。另外,确定介于0和pi之间的theta max值,以提供初始速度“ sum('name')m / s的最大水平距离。
我能够创建函数并绘制图形,但是我无法为theta max编写脚本,并且想知道是否有人可以帮助我。
我的功能是:
function [X_pos,Y_pos] = missile(V0,Theta)
m= 3; %kg
k=0.32; %drag coefficient
g=-9.81; %gravity (m/s/s) %negative gravity for projectiles
dt=0.01; %seconds
%initial velocity
d=0;
dy=0.000000000000001;
dx=0.000000000000001;
Vx=V0*cosd(Theta);
Vy=V0*sind(Theta);
i=2;
while dy(i-1)>0
%acceleration
Ay(i)= g-(Vy(i-1)*k);
Ax(i)= -(Vx(i-1)*k);
%velocity
Vy(i)= Vy(i-1) + Ay(i) * dt;
Vx(i)= Vx(i-1) + Ax(i) * dt;
DDx= ((Vx(i)+(Vx(i-1)/2)*dt));
dx(i)=DDx+dx(i-1); %distance from zero
DDy= ((Vy(i)+(Vy(i-1)/2)*dt));
dy(i)=DDy+dy(i-1); %distance from zero
i=i+1;
end
%moving plot
% comet(dx,dy)
% axis([0 110000 0 45000])
% xlabel('Distance (m)'); %x-axis label
% ylabel('Height (m)'); %y-axis label
% title('Projectile Motion'); %graph title
%stable plot
plot(dx,dy)
axis([0 110000 0 45000])
xlabel('Distance (m)'); %x-axis label
ylabel('Height (m)'); %y-axis label
title('Projectile Motion'); %graph title
X_pos=max(dx) ;
Y_pos= min(dy);
end
我的脚本是:
a=sum('Todd');
i=1;
g=9.81;
for b=1:1:90
T(i)=missile(a,b);
i=1+i;
end
dist=max(T);
theta= acos(sqrt(2*(-g)*dist)/a)
我也不完全确定自己的脚本中是否包含正确的公式。任何帮助表示赞赏!
谢谢!