User Tools

Site Tools


gibson:teaching:fall-2013:math445:lab11

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
gibson:teaching:fall-2013:math445:lab11 [2013/12/02 10:31]
gibson created
gibson:teaching:fall-2013:math445:lab11 [2013/12/05 09:10] (current)
szeto
Line 25: Line 25:
 </​code>​ </​code>​
  
-Write a Matlab script to plot the trajectory of a cannonball subject to the above equations of motion and shot with an initial speed of 100 m/s at an angle $\theta$ above the horizontal. ​In the same plot, show the trajectory in the (x,y) plane of the cannonball with and without air resistance. Use your script to answer ​the following questions:+**Problem 1:** Write a Matlab script to plot the trajectory of a cannonball subject to the above equations of motion and shot with an initial speed of 100 m/s at an angle $\theta=\pi/4$ above the horizontal. ​Produce a plot of the trajectory in the (x,y) plane of the cannonball with and without air resistance, both in the same plot. 
  
-(a) How far does the cannonball go in x with and without air resistance, if you shoot it at $\theta = \pi/4$?+**Problem 2:** Answer ​the following questions. You might need to modifying your script to answer the questions
  
-(b) What initial angle gives the farthest range with air resistance?+(a) How far does the cannonball go in x with and without air resistance, if you shoot it at $\theta = \pi/4$? [Hint: set $\mu=0$ to compute the trajectory without air resistance.] 
 + 
 +(b) What initial angle $\theta$ ​gives the farthest range with air resistance?
  
 %%(c)%% If $\theta = \pi/4$, how much do you have to increase the initial velocity so the x distance is as large as it is without air resistance? %%(c)%% If $\theta = \pi/4$, how much do you have to increase the initial velocity so the x distance is as large as it is without air resistance?
  
-Answering these questions with any precision will require some cleverness ​and a number ​of Matlab programming concepts ​you've learned through ​the semester+Hints: It's probably easiest to answer (a)-%%(c)%% if you turn your script into a function ''​xdistance = projectile(v0,​ theta)''​ that returns the distance the projectile travels as a function of the initial velocity ​and angle.  
 +In other words, create ​new function ​ "​projectile.m"​ 
 +<​code>​ 
 +function xdistance = projectile(v0,​theta) 
 + 
 +rho_air ​ = 1.28; % kg/m^3, density ​of air 
 +rho_iron = 7870; % kg/m^3, density of iron 7.87 gm/cm^3 == 0.00787 kg/​(0.01m)^3 = 7870 kg/m^3 
 +C_D = 1;         % drag coefficient for sphere 
 +g = 9.81;        % m/s^2, acceleration due to gravity 
 +.  
 +
 +
 +f = @(t,x) [ ....]; 
 + 
 +[t,x]= ode45(f,​[0:​0.1:​200] ,[ 0,​0,​v0*cos(theta),​ v0*sin(theta) ); 
 + 
 +xdistance = interp1(x(50:​end,​2),​ x(50:​end,​1),​ 0);  % This is how you can compute ​''​xdistance''​ 
 +% accurately from an ''​x,​y''​ trajectory using interpolation.  
 +% It will return ​the value of $x$ for which $y=0$, i.e.  
 +% where the cannonball hits the ground.  
 + 
 +end 
 +</​code>​ 
 + 
 +Once your function works, play around with the parameters ''​v0,​ theta''​ to answer the questions. ​  
 +On the command line, you can USE this function like this.  
 +<​code>​ 
 +  xdistance = projectile(100,​pi/​2) 
 +  xdistance = projectile(100,​pi/​4) 
 +  xdistance = projectile(100,​pi/​8) 
 +</​code>​ 
 + 
 + 
 +If your xdistance is a NaN, you may have to increase the number 50 in the interp1 function (1000 might be good, that is roughly half the length of [0:​0.1:​200]) 
 + 
 +  ​
gibson/teaching/fall-2013/math445/lab11.1386009097.txt.gz · Last modified: 2013/12/02 10:31 by gibson