Here are some examples and exercises that deal with forces. Make sure you practice IDEA.
2.5.1Exercises set 1¶
2.5.2Answers set 1¶
Solution to Exercise 1
Solution to Exercise 2
We know and .
The motion of the ball can be spilt in two components: horizontal, i.e. x-direction, and vertical, tha is y-direction.
In the vertical direction gravity acts: . Thus the equation of motion in the y-direction is: s_y(t)=s_{y0}+v_{y0}t-1/2gt^2$.
In the horizontal direction no force is active, thus:
The magnitude of the velocity of the ball hitting the ground can be expressed in terms of and as
We have as initial velocity:
Solving for with gives for the time the ball is in the air:
Next, we realize that as there is no force acting in the x-direction. Thus the horizontal distance traveled is
$$\Delta x = v_{X0} t_{air} = 24.0 \text{m}
For the velocity when hitting the ground is (that is, its magnitude), we need both the x and y-component:
The velocity upon impact is larger than the initial velocity. This makes sense. The ball first travels upwards, then downwards and will pass again on the downward motion. Then it will further accelerate to the ground and thus have a larger y-component of the velocity than at the start.
Solution to Exercise 3
- is constant
Solution to Exercise 4
- is not constant
Solution to Exercise 5
Solution to Exercise 6
Solution to Exercise 7
The unit vectors of S’ rotate with a frequency with respect to the unit vectors of S. This means, that the coordinate system of S’ rotates: the rotation angle is a function of time, i.e.
From the figure we see, that the coordinates of a point P, according to S, are related to those used by S’, via:
or written as the coordinate transformation:
with its inverse
Note that in this case , that is: it is a function of .
a) From the above relation we find that the point (1,0) in S will be denoted by S’ as
b) the velocity of the point (1,0) in S is according to S of course zero: S’ will say:
Solution to Exercise 8
Since and are parallel, the particle will not deviate from the line x=y. Hence, we are dealing with a 1-dimensional problem. The original coordinate system, , is not wrong: it is just not handy as it makes the problem look like 2D. Thus, we change our coordinate system, such that the new -axis coincides with the original x=y line.
N2: with initial conditions: and
initial condition: Thus:
for . The particle comes to rest and then, obviously, the friction force is zero.
Solution to Exercise 9
- We expect that the area, , under the trajectory of the ball is a function of , , and . In a dimensional analysis we write this as ‘product of powers’:
and we make this expression dimensional correct. (Note: we don’t mean that the final outcome of a full analysis is a product of powers, it can be any function but the units should be related in the right way and that is what this ‘trick’ with powers ensures.)
The area has units m, velocity m/s, g m/s and is dimensionless (radians don’t count as a dimension or unit). Thus:
This yields: . Thus on dimensional grounds we may expect: .
- In the x-direction: no forces, hence
In the y-direction: . Where we have used the initial conditions:
- Total time in the air:
5+6. Evaluate the area under the trajectory:
- We maximize the function :
The first solution give a minimum for the area (). So we need the second solution:
Solution to Exercise 10
We start with a sketch.
This is a 1-dimensional problem. We will use as the coordinate. Moreover, it is a problem involving two particles, that both can move. This makes it more difficult than 1-dimensional cases with only one particle.
We have to set up two equations of motion, one for particle 1 with mass and position and one for particle 2 with mass and position . When doing so, we should realize that the mutual force obeys Newton’s third law:
We see that the two equations are coupled: we can’t solve one without information from the other.
So, how do we proceed? First, let’s think about the question. We are not asked to solve the equation of motion and find the trajectory. What we need to find is the position of the collision.
From the two equation of motion we can find important information about the velocities of both particles. Just add to two equations:
Since both particles start rest, we find from the last equation: at any time. Thus particle 2 will travel 4 times a distance than particle 1 in the same time interval. Consequently: if particle 1 has moved 1cm, particle 2 has moved 4cm. Thus the particles (originally separated by 5cm) will collide at cm.
It makes sense that the heavy particle has traveled less than the light one: they both feel at any moment the same force (apart from a sign). The light particle will accelerate faster than the heavy one. Moreover, they should collide somewhere on the line element originally separating them as they are attracted to each other.
We found both these elements in our solution.
2.5.3Exercises set 2¶
Source
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from matplotlib.transforms import Affine2D
from ipywidgets import interact
import ipywidgets as widgets
# Constants
def update(theta,F_girl):
# Compute arrow end coordinates
F_boys_y = F_girl / 2
F_boys_x = F_girl*np.tan(theta)/2
# Clear figure
plt.clf()
fig, ax = plt.subplots()
ax.set_xlim(-20, 20)
ax.set_ylim(-20, 20)
ax.set_aspect('equal')
ax.grid(True)
# Draw arrow
# rope
ax.arrow(0, 0, -20*np.sin(theta), 20*np.cos(theta),
head_width=0, head_length=0, fc='black', ec='black')
ax.arrow(0, 0, 20*np.sin(theta), 20*np.cos(theta),
head_width=0, head_length=0, fc='black', ec='black')
#Forces
ax.arrow(0, 0, 0, -F_girl,
head_width=1, head_length=1, fc='green', ec='green')
ax.arrow(0, 0, F_boys_x, F_boys_y,
head_width=1, head_length=1, fc='red', ec='red')
ax.arrow(0, 0, -F_boys_x, F_boys_y,
head_width=1, head_length=1, fc='red', ec='red')
plt.show()
# Use FloatSlider for smooth interaction
interact(update, theta=widgets.FloatSlider(min=0.1, max=np.pi/2, step=np.pi/16, value=np.pi/4),
F_girl=widgets.FloatSlider(min=3, max=10, step=1, value=3))
Source
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from matplotlib.transforms import Affine2D
from ipywidgets import interact
import ipywidgets as widgets
# Constants
start = [0, 0]
L = 2
m = 10 #kg
g = 9.81 #kgm/s^2
t = np.linspace(0,5,100)
def Fw(theta,mu):
return mu*m*g*np.cos(theta)
def Fzx(theta):
return m*g*np.sin(theta)
def update(theta,mu):
# Compute arrow end coordinates
end = np.array([L * np.cos(theta), L * np.sin(theta)])
# Clear figure
plt.clf()
fig, axs = plt.subplots(1,2, figsize=(10, 5), gridspec_kw={'wspace': 0.4})
# first plot showing angle and box
ax = axs[0]
ax.set_xlim(0, 2)
ax.set_ylim(0, 2)
ax.set_aspect('equal')
ax.grid(True)
if Fw(theta,mu)>Fzx(theta):
ax.text(1.5, 1.5, 'Stable', fontsize=12)
else:
ax.text(1.5, 1.5, 'Sliding', fontsize=12)
# Draw arrow
ax.arrow(start[0], start[1], end[0], end[1],
head_width=0, head_length=0, fc='black', ec='black')
# Box properties
box_width = 0.4
box_height = 0.2
# Create unrotated rectangle at (0,0)
rect = Rectangle((-box_width / 2, 0 ),
box_width, box_height,
linewidth=1, edgecolor='red', facecolor='lightgray')
# Compute arrow end coordinates
end = start + np.array([L * np.cos(theta), L * np.sin(theta)])
# Compute midpoint of arrow
mid = start + np.array([L/2 * np.cos(theta), L/2 * np.sin(theta)])
# Transformation: rotate around origin, then translate to arrow tip
trans = (Affine2D()
.rotate(theta)
.translate(mid[0], mid[1]) + ax.transData)
rect.set_transform(trans)
ax.add_patch(rect)
# second plot showing motion with and without friction
ax2 = axs[1]
ax2.set_xlabel('$t$(s)')
ax2.set_ylabel('$s$(m)')
ax2.plot(t,1/2*g*np.sin(theta)*t**2,'k-',label='without friction')
if Fw(theta,mu)>Fzx(theta):
ax2.plot(t,np.zeros(len(t)),'r-',label='with friction')
else:
ax2.plot(t,1/2*g*(np.sin(theta)-mu*np.cos(theta))*t**2,'r-',label='with friction')
ax2.set_ylim(0,120)
ax2.legend()
plt.show()
# Use FloatSlider for smooth interaction
interact(update, theta=widgets.FloatSlider(min=0, max=np.pi/2, step=np.pi/16, value=np.pi/4),
mu=widgets.FloatSlider(min=0, max=1, step=0.05, value=1))
Source
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact
import ipywidgets as widgets
# Parameters
t_stop = 5
dt = 0.01
t = np.arange(0, t_stop + dt, dt)
# Force functions definitions
def force1(t):
a = 10
x = 0.5 * a * t**2
v = a * t
return x, v
def force2(t):
x = (1/6) * 10 * t**3
v = 0.5 * 10 * t**2
return x, v
def force3(t):
x = 125 * (1 - np.cos(np.pi * t / 2))
v = 125 * (np.pi / 2) * np.sin(np.pi * t / 2)
return x, v
def update(force_num):
fig, axs = plt.subplots(2, 1, figsize=(8, 6), gridspec_kw={'hspace': 0.4})
if force_num == 1:
selected_force = force1
elif force_num == 2:
selected_force = force2
else:
selected_force = force3
x_vals, v_vals = selected_force(t)
# Velocity vs Time
ax1 = axs[0]
ax1.plot(t, v_vals, 'b-')
ax1.set_xlim(0, t_stop)
ax1.set_ylim(-np.max(v_vals) * 1.2, np.max(v_vals) * 1.2)
ax1.set_xlabel('Time (s)')
ax1.set_ylabel('Velocity (cm/s)')
ax1.set_title('Velocity vs Time')
ax1.grid(True)
# Position vs Time
ax2 = axs[1]
ax2.plot(t, x_vals, 'r-')
ax2.set_xlim(0, t_stop)
ax2.set_ylim(0, np.max(x_vals) * 1.2)
ax2.set_xlabel('Time (s)')
ax2.set_ylabel('Position (cm)')
ax2.set_title('Position vs Time')
ax2.grid(True)
plt.show()
interact(update, force_num=widgets.IntSlider(min=1, max=3, step=1, value=1))
Source
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from matplotlib.animation import FuncAnimation
from IPython.display import HTML, display
from ipywidgets import interact, FloatSlider, IntSlider
def run_animation(g=9.81, M=1):
m1 = 1.0 # red block mass
acc = M / (m1 + M) * g # Net acceleration
t_stop = 1.5
dt = 0.02
t_vals = np.arange(0, t_stop, dt)
scale_factor = 25
x0 = 40
y0 = 210
fig, ax = plt.subplots(figsize=(9, 5))
ax.set_xlim(0, 900)
ax.set_ylim(500, 0)
ax.axis('off')
# Static scene
ax.fill_between([20, 320], 180, 190, color='black') # floor
pulley = plt.Circle((320, 180), 15, color='grey')
ax.add_patch(pulley)
ax.plot([450, 450], [20, 470], color='black') # y-axis
ax.plot([450, 800], [420, 420], color='black') # x-axis
ax.text(408, 170, "x (m)", fontsize=12)
ax.text(780, 440, "t (s)", fontsize=12)
for i, y in enumerate(range(125, 426, 75)):
ax.text(423, y, f"{(4 - i):.1f}", fontsize=10)
for i, x in enumerate([540, 640, 740]):
ax.text(x, 440, f"{0.5 * (i + 1):.1f}", fontsize=10)
for i in range(24):
ax.plot([450, 800], [420 - 15 * (i + 1)] * 2, color='grey', linewidth=0.5)
for i in range(17):
ax.plot([450 + 20 * (i + 1)] * 2, [60, 420], color='grey', linewidth=0.5)
# Dynamic elements
red_block = Rectangle((x0, 150), 30, 30, color='red')
grey_block = Rectangle((320, y0), 30, 30, color='grey')
ax.add_patch(red_block)
ax.add_patch(grey_block)
cord1, = ax.plot([], [], color='black')
cord2, = ax.plot([], [], color='black')
trace, = ax.plot([], [], color='blue')
x_trace, y_trace = [], []
def update(frame):
t = frame * dt
disp = scale_factor * 0.5 * acc * t**2
x = min(x0 + disp, 270)
y = min(y0 + disp, 440)
red_block.set_xy((x, 150))
grey_block.set_xy((320, y))
cord1.set_data([x + 30, 320], [165, 165])
cord2.set_data([335, 335], [180, y])
if x < 270:
x_trace.append(450 + (200 * t))
y_trace.append(420 - 1.53 * (x - x0))
trace.set_data(x_trace, y_trace)
return red_block, grey_block, cord1, cord2, trace
ani = FuncAnimation(fig, update, frames=len(t_vals), blit=True, interval=dt * 1000)
plt.close(fig) # Prevent duplicate static figure
display(HTML(ani.to_jshtml()))
# Interact widget with sliders
interact(run_animation,
g=FloatSlider(min=1.5, max=15.0, step=0.1, value=9.81, description='g (m/s²)'),
M=IntSlider(min=1, max=5, step=1, value=1, description='Mass (kg)'))
If you want to learn also how to use numerical methods ...
Try using an air drag force: . With the cross-sectional area of your object perpendicular to the velocity vector and the drag coefficient (in real life it is actually a function of the velocity). is the density of air which is about .
Write a computer program (e.g. in python) that calculates the motion of your object. See Solution with Python how you could do that.
Figure 12:Riding a bicycle. Adapted from InjuryMap, from Wikimedia Commons, licensed under CC BY-SA 4.0.
On a bicycle you will have to apply a force to the pedals to move forward, right? What force actually moves you forward, where is it located and who/what is providing that force?
- Make sketch and draw the relevant force. Give the force that actually propels you a different color.
- Think for a minute about the nature of this force: are you surprised?
N.B. Consider while thinking about this problem: what would happen if you were biking on an extremely slippery floor?
Solution to Exercise 19
When you push with your foot on the pedal, that force is transferred to the chain of your bike. That chain exerts a force on the gear of your bike’s rear wheel, trying to get it to rotate. Your wheel touches the ground and, because of the force on the gear, the wheel exerts a force in the ground, trying to push the ground backwards. Due to action=-reaction, the ground exerts a forward force on your wheel. So actually, biking means “making the ground push you forward”!
You are stepping from a boat onto the shore. Use Newton’s laws to describe why you will end up in the water.
N.B. A calculation is not required, but focus on the physics and describe in words why you didn’t make it to the jetty.
Solution to Exercise 20
When you try to step on the jetty, a force needs to be exerted on you, otherwise you can’t move forward. The way you achieve that: you push with your back foot on the boat. And as a result of Newton 3, the boat will push back, but the force from the boat on you is forward directed. That is exactly what you need!
However, while you push, the boat will move backwards due to the force you exert on it. Consequently, your point of contact with the boat shifts away from the jetty. Either you let the boat go and no force from the boat is acting on you. Now gravity will do its work and if your forward velocity is not sufficient, you will not reach the jetty. Or your foot will try to follow the boat and that requires a force to the wrong direction acting on you.
Pushing harder seems an option: your forward velocity might increase more. However, the boat will also be pushed harder and moves quicker away from you. Consequently, the time interval of contact with the boat decreases. Thus, with Newton 2: dp = Fdt your increase in velocity due to the larger force might be compensated by a smaller duration that the force can do so. And you may still end up in the water.
![Stamp designs © Royal Mail Group Ltd[^1].](/Mechanica/build/StampNewton-46c00760d8ebb41f583d332517c36eb4.jpg)
Figure 15:Stamp designs © Royal Mail Group Ltd[^1].
Close this book (or don’t peak at it ;-)) and write down Newton’s laws. Explain in words the meaning of each of the laws. Try to come up with several, different ways of describing what is in these equations.
Exercise from Idema, T. (2023). Introduction to particle and continuum mechanics. Idema (2023)
- Idema, T. (2023). Introduction to particle and continuum mechanics. TU Delft OPEN Publishing. 10.59490/tb.81