Energy is never created or destroyed. It converts between kinetic energy (motion) and potential energy (position). The work-energy theorem links force over distance to changes in kinetic energy. That is the entire chapter.
Kinetic energy
A mass m moving at speed v has kinetic energy KE = (1/2)mv². Double the speed, quadruple the energy. This is why car crashes at highway speed are so much worse.
Scheme
; Kinetic energy: KE = (1/2) m v^2; A 2 kg ball at different speeds
(define (kinetic-energy m v)
(* 0.5 m (* v v)))
(display "KE at 1 m/s: ")
(display (kinetic-energy 21)) (newline) ; 1 J
(display "KE at 2 m/s: ")
(display (kinetic-energy 22)) (newline) ; 4 J
(display "KE at 3 m/s: ")
(display (kinetic-energy 23)) (newline) ; 9 J; Double speed -> 4x energy
(display "KE at 10 m/s: ")
(display (kinetic-energy 210)) (newline) ; 100 J
(display "KE at 20 m/s: ")
(display (kinetic-energy 220)) ; 400 J
Python
# Kinetic energydef kinetic_energy(m, v):
return0.5 * m * v**2for v in [1, 2, 3, 10, 20]:
print(f"KE at {v:2d} m/s: {kinetic_energy(2, v):6.1f} J")
Potential energy
Near Earth's surface, gravitational potential energy is PE = mgh. Lift a ball higher and you store energy in its position. Drop it and that stored energy converts to kinetic energy. The sum KE + PE stays constant (ignoring friction).
Scheme
; Gravitational potential energy: PE = m * g * h; g = 9.8 m/s^2
(define g 9.8)
(define (potential-energy m h) (* m g h))
(define (kinetic-energy m v) (* 0.5 m (* v v)))
; 1 kg ball at height 10 m, released from rest
(define m 1)
(define h 10)
(define PE-top (potential-energy m h))
(define KE-top (kinetic-energy m 0))
(define total-top (+ PE-top KE-top))
(display "At top: PE = ") (display PE-top)
(display " KE = ") (display KE-top)
(display " Total = ") (display total-top) (newline)
; At bottom: all PE converted to KE; v = sqrt(2gh)
(define v-bottom (sqrt (* 2 g h)))
(define PE-bottom (potential-energy m 0))
(define KE-bottom (kinetic-energy m v-bottom))
(define total-bottom (+ PE-bottom KE-bottom))
(display "At bottom: PE = ") (display PE-bottom)
(display " KE = ") (display KE-bottom)
(display " Total = ") (display total-bottom) (newline)
(display "v at bottom: ") (display v-bottom) (display " m/s")
Work-energy theorem
Work is force times displacement along the direction of force: W = F * d * cos(theta). The work-energy theorem says the net work done on an object equals the change in its kinetic energy. This connects force (Newton's world) to energy (the conservation world).
Scheme
; Work-energy theorem: W_net = delta KE; Push a 5 kg box with 20 N over 3 m, starting from rest.
(define (kinetic-energy m v) (* 0.5 m (* v v)))
(define F 20) ; Newtons
(define d 3) ; meters
(define m 5) ; kg
(define W (* F d))
(display "Work done: ") (display W) (display " J") (newline)
; W = KE_final - KE_initial; KE_initial = 0 (starts from rest); So KE_final = W; (1/2) m v^2 = W => v = sqrt(2W/m)
(define v-final (sqrt (/ (* 2 W) m)))
(display "Final speed: ") (display v-final) (display " m/s") (newline)
; Verify
(define KE-final (kinetic-energy m v-final))
(display "KE_final: ") (display KE-final) (display " J") (newline)
(display "W = delta KE? ") (display (= W KE-final))
Python
# Work-energy theoremimportmath
F, d, m = 20, 3, 5# N, m, kg
W = F * d
v_final = math.sqrt(2 * W / m)
print(f"Work done: {W} J")
print(f"Final speed: {v_final:.2f} m/s")
print(f"KE_final: {0.5 * m * v_final**2} J")
print(f"W = delta KE? {abs(W - 0.5 * m * v_final**2) < 1e-10}")
The conservation law
In an isolated system, total energy is constant. No experiment has ever found a violation. When energy seems to disappear, we discover a new form of it (heat, mass via E = mc², nuclear binding energy). Conservation of energy is not derived from Newton's laws. It is deeper and more general.
Scheme
; Conservation of energy: simulate a bouncing ball; (no friction, perfectly elastic)
(define g 9.8)
(define dt 0.1)
(define (simulate y vy steps)
(if (= steps 0) (newline)
(let* ((KE (* 0.5 (* vy vy)))
(PE (* g (max y 0)))
(total (+ KE PE)))
(display "y=") (display (round (* y 100)))
(display "cm KE=") (display (round KE))
(display " PE=") (display (round PE))
(display " Total=") (display (round total))
(newline)
(let* ((new-vy (- vy (* g dt)))
(new-y (+ y (* new-vy dt)))
; Bounce off ground
(new-y2 (if (< new-y 0) (- new-y) new-y))
(new-vy2 (if (< new-y 0) (- new-vy) new-vy)))
(simulate new-y2 new-vy2 (- steps 1))))))
; Drop from 5 m
(display "Dropping from 5 m:") (newline)
(simulate 508)