Writing a function for a Projectile?
2 views (last 30 days)
Show older comments
Writing a function determining horizontal and vertical position of 2 kg projectile with user given initial velocity(of 300m/s) and angle. Must incorporate linear drag coefficient value of 0.3 Function should plot the location of projectile for each time step from when its fired until its hit the ground. I separated the vertical and horizontal positions into two separate functions but my while loops are infinite and i don't know why. My function readsfunction [ horizontal_position ] = Horizontal_position(theta,v0) %this function will determine horizontal of a %projectile shot k=0.3; %drag coefficent x=0; %inital position dt=0.1; i=1; v=v0*cosd(theta); while x>=1 n(i)=i+dt; acceleration=-v*k; vf=v+(acceleration*dt); ave_velocity=(vf+v)/2; horizontal_position_change=ave_velocity*dt; horizontal_position=(horizontal_position_change+x); end end
0 Comments
Answers (1)
Sara
on 28 Mar 2014
You do not recalculate x in the loop. Is it possible that it should have been:
x=(horizontal_position_change+x);
in the last line?
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!