Misa's Blog

why sin θ ≈ θ

So, I was working on simple program, which is a SHM (Simple Harmonic Motion) pendulum simulation. While trying to derive the formula, I came across the following equation for the restoring force:

Fmgθ

The formula is comes from ball like this:

Image Description
As you can see, The force providing the restoring torque is the component of the weight of the pendulum bob which is:


F=mgsinθ

But here's the catch, SHM only works when the angle is small. Why? Because as the angle gets larger, the period of the motion increases and the motion itself becomes more complex, deviating from the ideal SHM characteristics. For small angles (less than 15° ), we can use the approximation:

sinθθ

Which simplifies the formula to:

Fmgθ

Now, hold on a second. How the fuck does sinθθ ? After doing some searching, I found out where this approximation comes from. Turns out, the easiest way to understand it is by plotting. Let’s see if the plot of sinθ really approximates 𝜃, or not.

Before we can plot, we need to convert angles from degrees to radians. Why? Because radians are the standard unit for trigonometric functions when plotting on a 2D graph. Here's the formula:

Rad=π180·θ

Now, let’s plot sinx, where x is the angle in radians ranging from 0 to 2 π or 360 .


Plotting

We can use python as a tool to do that. here the code

import numpy as np
import matplotlib.pyplot as plt

# x from 0 to 2π
x = np.linspace(0, 2 * np.pi, 1000)  # 1000 points between 0 and 2π
y = np.sin(x)  # Calculate sin(x)

plt.figure(figsize=(8, 5))  # Set the figure size
plt.plot(x, y, label='sin(x)', color='blue')

plt.title('Plot of sin(x)', fontsize=14)
plt.xlabel('x (radians)', fontsize=12)
plt.ylabel('sin(x)', fontsize=12)

plt.grid(True, linestyle='--', alpha=0.7)
plt.legend(fontsize=12)

plt.show()

if we run, the result would like this: plotting sin x

Adding a Line for 𝜃

On the same graph, we’ll also add a line plot for 𝜃 to compare it with sin 𝜃. The results are interesting. Lets see:

import numpy as np
import matplotlib.pyplot as plt


theta = np.linspace(-np.pi, np.pi, 1000)  
sin_theta = np.sin(theta)

# Plot sin(theta)
plt.figure(figsize=(8, 5))
plt.plot(theta, sin_theta, label='sin(θ)', color='blue')

# Plot the line y = θ
plt.plot(theta, theta, label='θ (line)', color='red', linestyle='--')


plt.title('Comparison of sin(θ) and θ', fontsize=14)
plt.xlabel('θ (radians)', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.xlabel('θ (radians)', fontsize=12)  # Horizontal axis label
plt.ylabel('sin(θ) and θ', fontsize=12)  # Vertical axis label
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend(fontsize=12)

# Show the plot
plt.show()

Here the result when the code was run: result

See there are intersect. if we zoom in on the region where the two plots intersect, here’s what we see:

zoom

Look, the blue line representing sin 𝜃 intersects with the red line dots representing 𝜃 starting around −0.25 radians to 0.25 radians. Which, when converted to degrees, is 14.32°. This is why sin 𝜃 ≈ 𝜃 for small angles.

#physics