Мне было дано задание, в котором говорится: написать функцию для определения горизонтального и вертикального положения выстрела снаряда с заданной начальной скоростью и углом, тета, над горизонтом.Ваша функция должна включать линейное сопротивление с коэффициентом сопротивления k.Кроме того, определите значение тэта макс между 0 и пи, которое обеспечивает максимальное горизонтальное расстояние для начальной скорости "сумма ('имя') м / с.
Мне удалось создать функцию и график, но явозникли проблемы при написании сценария для тэта макс, и мне было интересно, может ли кто-нибудь мне помочь.
Моя функция:
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)
IЯ не совсем уверен, что у меня есть правильные формулы в моем сценарии. Любая помощь приветствуется!
Спасибо!