thespacebetweenstars.com

Exploring the Physics of an Upward Thrown Ball with Python

Written on

Chapter 1: Introduction to Kinematics

In the textbook "Advanced Physics Demystified," published by McGraw-Hill, the foundational principles of calculus-based physics are introduced. This article aims to elucidate the approach I employed to tackle a linear kinematics problem related to the upward motion of a ball.

Overview of the Problem

The textbook presents the following scenario:

“Imagine tossing a ball vertically at an initial speed of 20 m/s. Assume the acceleration due to gravity is 10 m/s². How long will it take for the ball to return to the ground, disregarding air resistance?” — Gibiliseo (2007, p. 26)

Before diving into the solution, I wanted to visualize the scenario. Below is an illustration of my conceptualization:

Conceptual visualization of a ball tossed upward

For this discussion, I will focus on the kinematic equations that define the ball's velocity and displacement as functions of time.

Formulating the Solution

The connection between displacement, velocity, and acceleration is captured in the following equation:

Kinematic equations representation

In this formula, a(t) represents acceleration, v(t) denotes the velocity function, h(t) corresponds to displacement, and t is an independent variable symbolizing time. Given an acceleration function, in this case, a(t) = -10 m/s², we can derive the velocity and displacement functions using integrals.

Python and the SymPy Live Shell (n.d.) make this process straightforward, as illustrated in the following image:

SymPy Live Shell output for velocity and displacement

Upon manually solving this problem, I obtained the displacement function -5t² + v_it + h_0, which aligns with the solution generated by SymPy Live Shell. The question remains: “[h]ow long will it take for the ball to return to the ground, neglecting air resistance?”

To answer, I applied the general solution for quadratic equations, leveraging the initial velocity v_i = 20 m/s. For simplicity, units will be omitted until the final solution.

Notably, the problem specifies that the height h_0 is at the origin (0, 0) on the Cartesian plane. This allows us to simplify the quadratic equation, resulting in:

Simplified quadratic equation

I implemented and solved for t_1 and t_2 using Python as follows:

>>> import math
>>> t_1 = lambda a, v_i: (-v_i + math.sqrt(v_i**2)) / (2 * a)
>>> t_2 = lambda a, v_i: (-v_i - math.sqrt(v_i**2)) / (2 * a)
>>> t_1(-5, 20)

-0.0

>>> t_2(-5, 20)

4.0

Thus, the solutions for t are 0 seconds and 4 seconds. Logically, the duration it takes for the ball to return to the ground is approximately four seconds, occurring after it reaches its peak height. The following graph illustrates the height displacement function, providing a visual representation of the solution:

Graph of height displacement over time

Python in Physics Problem Solving

Through this article, I have explored how Python can be a valuable tool in addressing physics-related problems. While I believe that Python enhances the process of solving applied math challenges, it should not completely replace the traditional methods, which, although labor-intensive, are critical for understanding.

Acknowledgments

I would like to express my gratitude to Amit Saha for his book "Doing Math with Python" (Saha 2015), which served as a valuable reference in writing this article and developing Python code.

Appendix

A. Code for Figure 1

import matplotlib.pyplot as plt

plt.figure()

ax = plt.gca()

plt.rcParams['xtick.bottom'] = plt.rcParams['xtick.labelbottom'] = False

plt.rcParams['xtick.top'] = plt.rcParams['xtick.labeltop'] = True

plt.axhline(color="black")

plt.arrow(0, 0, 0, 2, label="v_i = 20 m/s", width=0.05, color="black")

plt.arrow(0.5, 4, 0, -2, label="g = 10 m/s²", width=0.05, color="grey")

circle = plt.Circle((0, 0), radius=0.1, color="black")

ax.add_patch(circle)

plt.legend()

plt.grid()

plt.title("Abscissa", fontsize=16)

plt.ylabel("Ordinate", fontsize=16)

plt.xlim(-0.3, 1)

plt.ylim(-0.3, 5)

plt.show()

B. Code for Figure 3

import math

import matplotlib.pyplot as plt

import numpy as np

plt.figure()

plt.rcParams['xtick.bottom'] = plt.rcParams['xtick.labelbottom'] = False

plt.rcParams['xtick.top'] = plt.rcParams['xtick.labeltop'] = True

h = lambda t: -5*t**2 + 20*t

T = np.arange(0, 5, 0.01)

plt.plot(T, [h(t) for t in T], color="black", label="g = 10 m/s² n v_i = 20 m/s")

plt.legend()

plt.grid()

plt.title("Time", fontsize=16)

plt.ylabel("Height (h)", fontsize=16)

plt.xlim(0, 4.3)

plt.ylim(0, 22)

plt.show()

References

Gibiliseo, S. (2007). Advanced Physics Demystified [Paperback]. McGraw-Hill Education.

Saha, A. (2015). Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! No Starch Press.

The first video, "Python Physics: Motion of a Ping Pong Ball WITH Air Drag," explores the effects of air drag on projectile motion, providing insights relevant to our discussion.

The second video, "Python Physics Lesson 5: Projectile Motion with Air Resistance," covers key concepts in projectile motion, enhancing understanding of these physics principles.

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

How to Enhance Every Phase of Your Technology Career

A comprehensive guide tailored for tech professionals at all career stages, offering insights and strategies for advancement.

Unraveling the Mystery of Little Miss Nobody After 60 Years

Discover the heartbreaking story of Little Miss Nobody, a case that remained unsolved for over 60 years until recent breakthroughs identified her.

Unlocking the Benefits of Failure: A Roadmap to Success

Discover how embracing failure can lead to personal growth and success through actionable insights and lessons learned.

Navigating Personal Boundaries in the Digital Age

Exploring the complexities of personal boundaries in online interactions and the impact of social media on our relationships.

# Essential Features I Wish My Apple Watch Had

Discover the features I desperately want on my Apple Watch for a more independent experience.

The Illusion of Accountability in Narcissistic Behavior

Understanding how narcissists manipulate accountability to avoid shame.

Healing After Love is Withheld: A Guide to Moving Forward

Discover effective strategies for coping with the emotional fallout of a spouse withholding love and reclaiming your self-worth.

Mastering Sales Success: Techniques for Top Performers

Explore essential skills and strategies to excel in sales, build relationships, and achieve success in a competitive environment.