''' Projectile motion Although it is nice (and valuable) to calculate the range of projectile motion by hand, it is much more convenient to write a program that allows you to study this motion and do various calculations within a few seconds. The basic equations are: x = v_x * t = v * cos(theta) * t y = v_y * t - 1/2 * g * t^2 = v * sin(theta) * t - 1/2 * g * t^2 where `x` and `y` are the respective position components, `g` is the gravitational constant, `t` indicates time, `v` is the velocity of the throw, and theta is the angle the ball was thrown at. Exercise A: Plot the projectile motion for theta = pi/3, v = 100 m/s and time 15 seconds. ''' # Your code here ''' Exercise B: The above plot shows the projectile motion, but does not stop at `x` = 0. You can solve these equations for t_max and x_max: t_max = (2 * v_y) / g = (2 * v * sin(theta)) / g x_max = v_x * t_max = (2 * v_x * v_y) / g = (2 * v^2 * cos(theta)) * sin(theta)) / g * Write a function which returns x_max as a function of inputs theta and v. * Make an array with 20 evenly spaced angles theta in the [0, pi/2] domain, using `numpy.linspace`. * Plot x_max as a function of theta for v = 10 m/s. * Additionally, plot x_max as a function of theta for v = 20 m/s. From the two plots, which angle is the best to reach the maximal x_max? ''' # Your code here