Hold a heavy bag for an hour — your muscles ache, you sweat, you get tired. Yet in physics, you’ve done no work at all. Why? Because “work” in physics has a very specific mathematical definition, quite different from the everyday one. It’s captured beautifully by a single dot-product formula.

The core idea in one paragraph 📌

Work ($W$) is done only when a force displaces an object. The general formula: $W = F d \cos\theta$, where $\theta$ is the angle between force and displacement. If the force is perpendicular to the motion, work is zero ($\cos 90° = 0$). If it points opposite to the motion, work is negative — energy is taken away from the object. Unit: joule = N·m. In vector form: $W = \vec{F} \cdot \vec{d}$.

The master formula 📐

$$\boxed{W = F d \cos\theta \;=\; \vec{F} \cdot \vec{d}}$$

Five key angle cases 🎯

Angle $\cos\theta$ Work Example
$0°$ $+1$ Max positive Pushing a box along its motion
$0° < \theta < 90°$ positive positive Pulling a box with an angled rope
$90°$ $0$ Zero Gravity on horizontal motion; centripetal force
$90° < \theta < 180°$ negative Negative Component opposing the motion
$180°$ $-1$ Max negative Friction on a sliding object

Why holding a bag isn’t work 🤔

Your muscles do exert force ✅. But displacement is zero ❌. So:

$$W = F \times 0 \times \cos\theta = 0$$

Your fatigue is biological — muscle fibers keep contracting and relaxing (microscopic tremors) and burn energy as heat. But no physical work is done on the bag because it never moved. Physics and biology tell two different stories.

Example 1 — force along the motion 📦

A worker pushes a box horizontally with $F = 250$ N over $d = 14$ m. ($\theta = 0°$)

$$W = 250 \times 14 \times \cos 0° = 3{,}500\ \text{J} = 3.5\ \text{kJ}$$

Example 2 — angled force 🧵

A rope at angle $\theta = 37°$ ($\cos 37° = 0.8$) pulls a box with $F = 100$ N over $d = 5$ m:

$$W = 100 \times 5 \times 0.8 = 400\ \text{J}$$

Only $F \cos\theta = 80$ N of the force is along the motion; the other 60 N tries to lift the box, but there’s no vertical displacement, so it does no work.

Example 3 — the negative work of friction 🛑

You push a 20-kg box against $f_k = 60$ N of kinetic friction. It slides 5 m. Friction’s work:

$$W_f = 60 \times 5 \times \cos 180° = -300\ \text{J}$$

Friction pulled 300 J of energy out of the object and dumped it as heat 🔥.

Total work — algebraic sum 🧮

If several forces act, the total work = sum of the individual works = work of the net force:

$$W_\text{total} = \sum_i W_i = W_\text{net}$$

Example: an object pushed with $F = 100$ N against $f = 30$ N of friction, moved 4 m:

$$W_\text{total} = 100 \times 4 – 30 \times 4 = 400 – 120 = 280\ \text{J}$$

Geometric view — area under the $F$–$x$ graph 📊

For a constant force, plot $F$ vs. $x$: the graph is a rectangle whose area is $F \times d$ — the work done. This idea generalizes powerfully to the next chapter (variable forces, like a spring): work becomes the integral of $F$ along the path.

Python analysis 🐍

1) Angle effect — plotting $W$ vs. $\theta$

import numpy as np
import matplotlib.pyplot as plt

F, d = 100, 5   # 100 N, 5 m
theta = np.linspace(0, 180, 200)          # degrees
W = F * d * np.cos(np.deg2rad(theta))

plt.plot(theta, W)
plt.axhline(0, color='gray', ls=':')
plt.xlabel('θ (°)'); plt.ylabel('W (J)')
plt.title('Work vs. angle — F=100 N, d=5 m')
plt.grid(); plt.savefig('work_angle.png', dpi=120)

for t in [0, 30, 60, 90, 120, 180]:
    W_val = F * d * np.cos(np.deg2rad(t))
    print(f"θ = {t:3d}° → W = {W_val:+.1f} J")
# 0°=+500, 90°=0, 180°=-500

2) Total work under multiple forces

import numpy as np

# Each force: (name, magnitude, angle with motion)
forces = [
    ("Applied push",       200,   0),
    ("Friction",           50,  180),
    ("Angled rope",        100,  60),
    ("Weight (horizontal)", 500,  90),   # zero work
]
d = 10  # m

W_total = 0
for name, F, theta_deg in forces:
    W = F * d * np.cos(np.deg2rad(theta_deg))
    print(f"{name:22s} F={F:3d}N θ={theta_deg:3d}° → W={W:+8.1f} J")
    W_total += W

print(f"{'Total':22s} {'':21s}  → W={W_total:+8.1f} J")
# push +2000, friction -500, rope +500, weight 0 → total: +2000 J

3) Work as a vector dot product

import numpy as np

# Force and displacement as vectors (Nx, Ny)
F_vec = np.array([80, 60])       # N
d_vec = np.array([5, 0])         # m

W = np.dot(F_vec, d_vec)
print(f"W = F·d = {W} J")        # 400 J

# Verify the angle
cos_theta = W / (np.linalg.norm(F_vec) * np.linalg.norm(d_vec))
print(f"cos θ = {cos_theta:.3f}, θ = {np.degrees(np.arccos(cos_theta)):.1f}°")
# cos = 0.8, θ = 36.9°

Take-home summary 🎁

$W = F d \cos\theta = \vec{F} \cdot \vec{d}$ — three symbols with one meaning. Unit: joule. Perpendicular force does no work; opposing force does negative work. Total work = algebraic sum. Area under the $F$–$x$ graph = work (a preview of integration). A few lines of Python capture the angle dependence, multi-force sums, and the vector dot product 😎.


“Nice to know” box: the centripetal force does no work! 💡

The Moon orbits the Earth; the planets orbit the Sun. Gravity acts on the Moon continuously — so gravity must be doing work on the Moon, right? Nope! 🤯 Gravity always points toward the center (the Earth), but the Moon’s velocity is tangent to its orbit — perpendicular to the force ($\theta = 90°$). So $\cos 90° = 0$ and gravity does zero work on the Moon. That’s why the Moon’s kinetic energy doesn’t change and it maintains a constant orbital speed. A beautiful illustration of the power of that tiny $\cos\theta$ in the formula.


Test yourself 📝


References and further exploration 📚

Articles and reference

Videos (YouTube)

External simulators

On this site 🔗


In the next section we hit one of physics’ most beautiful theorems: the work-kinetic-energy theorem — the total work done on an object exactly equals the change in its kinetic energy. See you there 👋

سوالی دارید؟ 🤔

اگه مفهومی نامشخص بود یا سوالی داشتید، اینجا بپرسید. جوابتون در اینجا منتشر می‌شه.

💬 جواب بهتری داری؟ یا یه سؤال جدید؟

اگه به سؤالای بالا پاسخی داری که فکر می‌کنی روشن‌تر یا کامل‌تر از مال منه، یا یه سؤال جدید برای دانش‌آموزای دیگه داری — تو بخش نظرات پایین صفحه ارسال کن. هر پیامی رو می‌خونم، تأیید می‌کنم و منتشر می‌شه. این‌جوری همه از تجربه‌ی همدیگه استفاده می‌کنیم. 🌱