I am working on a project which involves launching a tennis ball at a certain velocity and angle in order to hit a given target. To do so, I have just started diving into projectile motion and am thus a beginner in this field. However, manipulating the basic equations to get results is pretty straight forward in most cases.

My problem: I have implemented a solver that calculates the needed launch angle for given initial projectile velocity, position of launcher and position of target in order to reach the target. I found out that the solutions to this problem are the roots of following quadratic equation : $$0 = \frac{1}{2}\frac{g\Delta_x^2}{v_0^2}\tan^2(\theta) - \Delta_x\tan(\theta) + \frac{1}{2}\frac{g\Delta_x^2}{v_0^2}\tan^2(\theta) - \Delta_y$$ where $y$ is the height of the target, $y_0$ is the height of the launcher, $\Delta_y = y - y_0$, and similarly for $x$, $x_0$, and $\Delta_x$. $\theta$, $v_0$, and $g$ are, respectively, the launch angle, the initial velocity and gravitational acceleration.

Given that the unknown $X$ that we are solving for is defined as $X = \tan(\theta)$, the roots can be expressed as $$\frac{v_0^2\pm\sqrt{v_0^4 - g(g\Delta_x^2+2\Delta_y v_0^2)}}{g\Delta_x}$$

Now here is the tricky part: when I input the values of a similar problem I found on the internet ($\Delta_x = 600\ \mathrm{m}$, $\Delta_y = 40\ \mathrm{m}$, $v_0 = 100\ \mathrm{m/s}$), I find the exact same angles as the solutions stated in this problem. However, when I input random values, I almost always get imaginary solutions. For example $\Delta_x = 30\ \mathrm{m}$, $\Delta_y = 0\ \mathrm{m}$, $v_0 = 10\ \mathrm{m/s}$ can't be solved since the determinant is negative.

Common sense doesn't allow me to believe that there is no launching angle that can be set up in order to reach a target 30 meters away with a projectile that flies at 10 meters per second. However, no real roots can be found for this problem. That's just an example, since many other inputs that you would judge as being realistic can't be solved for the angle.

Is it really true that some projectile motion problems are simply unsolvable for certain inputs? How can I tell which sets of inputs have solutions?

  • $\begingroup$ if all of the solutions to the equations are imaginary, then there is indeed a solution to your problem. That solution is that there is not a angle to achieve what is wanted. And that is a physical solution. Don't loose the physics when working through the math. $\endgroup$
    – Michael
    May 5, 2020 at 19:10
  • $\begingroup$ "Common sense doesn't allow me to believe that there is no launching angle that can be set up in order to reach a target 30 meters away with a projectile that flies at 10 meters per second" - that would be like jumping three school buses on a bicycle. $\endgroup$ Oct 4, 2023 at 18:45

1 Answer 1


Indeed, not all projectile motion problems are solvable, in this sense. To be clear, that means that given the initial speed and displacement to the target, there is not always a firing angle that will allow the launcher to hit the target.

This is easy to understand, if you think about it. No angle will allow you to shoot a projectile infinitely far. So the horizontal displacement has to have some maximum range (given vertical displacement, launch speed, and other parameters). If your target is further away than that, you're out of luck.

The way to tell whether a target is reachable is precisely by checking that determinant, as you tried. If there are no real roots to the equation, there's no angle that will get the projectile to the target. You can also use known equations for projectile range to see if your target falls within the reachable distance. On flat ground ($\Delta y = 0$), for example, the range is $v^2/g$, which for your example gives $(10\ \mathrm{m/s})^2/9.8\ \mathrm{m/s^2} = 10.2\ \mathrm{m}$. Anything further than that, including your $30\ \mathrm{m}$ example distance, cannot be hit by the projectile.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.