1.3 Proportions and Rates
If you wanted to power the city of Seattle using wind power, how many windmills would you need to install? Questions like these can be answered using rates and proportions.
Note
Rates
A rate is the ratio (fraction) of two quantities.
A unit rate is a rate with a denominator of one.
Many proportion problems can also be solved using dimensional analysis , the process of multiplying a quantity by rates to change the units.
Dimensional analysis can also be used to do unit conversions. Here are some unit conversions for reference.
Note
Unit Conversions
Length
1
foot (ft)
=
12
inches (in)
1
yard (yd)
=
3
feet (ft)
1
mile
=
5
,
280
feet
1000
millimeters
m
m
=
1
meter (m)
100
centimeters (cm)
=
1
meter
1000
meters (m)
=
1
kilometer (km)
2.54
centimeters (cm)
=
1
inch
Weight and Mass
1
pound (lb)
=
16
ounces (oz)
1
ton
=
2000
pounds
1000
milligrams (mg)
=
1
gram (g)
1000
grams
=
1
kilogram (kg)
1
kilogram
=
2.2
pounds (on earth)
Capacity
1
cup
=
8
fluid ounces (fl oz)
*
1
pint
=
2
cups
1
quart
=
2
pints
=
4
cups
1
gallon
=
4
quarts
=
16
cups
1000
milliliters (ml)
=
1
liter (L)
* Fluid ounces are a capacity measurement for liquids. 1 fluid ounce ≈ 1 ounce (weight) for water only.
Example 5
A bicycle is traveling at 15 miles per hour. How many feet will it cover in 20 seconds?
from fractions import Fraction
# Dimensional analysis, done the way the book does it: multiply by rates that
# equal 1, and cross off units until only the unit you want is left.
def convert(amount, unit, chain):
"""chain: list of (top_amount, top_unit, bottom_amount, bottom_unit)"""
value, top, bottom = Fraction(str(amount)), [unit], []
print(" start:%-28s %14s %s" % ("", str(value), unit))
for ta, tu, ba, bu in chain:
value = value * Fraction(str(ta)) / Fraction(str(ba))
top.append(tu)
bottom.append(bu)
cancelled = [u for u in list(top) if u in bottom] # cross off matching units
for u in cancelled:
top.remove(u)
bottom.remove(u)
units = "*".join(top) + ("/" + "*".join(bottom) if bottom else "")
print(" x %-32s %14s %-14s (cancelled %s)"
% ("%s %s / %s %s" % (ta, tu, ba, bu), str(value), units,
", ".join(cancelled) or "nothing"))
return value, top, bottom
# The book's bicycle: 15 miles per hour, how many feet in 20 seconds?
# CHANGE the 20, the 15, or add/remove links in the chain and re-run.
value, top, bottom = convert(20, "second", [
(1, "minute", 60, "second"),
(1, "hour", 60, "minute"),
(15, "mile", 1, "hour"), # <-- the bicycle's speed
(5280, "foot", 1, "mile"),
])
print()
print("answer: %s = %.1f %s" % (value, float(value), "*".join(top)))
print()
# Try it Now 4 from the book: 18 inches of wire from a 1000 ft, 19.8 lb spool.
value, top, bottom = convert(18, "inch", [
(1, "foot", 12, "inch"),
(19.8, "pound", 1000, "foot"),
(16, "ounce", 1, "pound"),
])
print("answer: %.3f %s" % (float(value), "*".join(top)))
# If a unit never cancels, you chained the rate upside down -- flip it and re-run.
Show solution
To answer this question, we need to convert 20 seconds into feet. If we know the speed of the bicycle in feet per second, this question would be simpler. Since we don’t, we will need to do additional unit conversions. We will need to know that 5280 ft = 1 mile. We might start by converting the 20 seconds into hours:
20
seconds
·
1
minute
60
seconds
·
1
hour
60
minutes
=
1
180
hour
Now we can multiply by the
15
miles/hr
1
180
hour
·
15
miles
Ihour
=
1
12
mile
Now we can convert to feet
1
12
mile
·
5280
feet
1
mile
=
440
feet
We could have also done this entire calculation in one long set of products:
20
seconds
·
1
minute
60
seconds
·
1
hour
60
minutes
·
15
miles
1
hour
·
5280
feet
1
mile
=
440
feet
Your Turn
Try it Now 4
A 1000 foot spool of bare 12-gauge copper wire weighs 19.8 pounds. How much will 18 inches of the wire weigh, in ounces?
Answer
18
inches
·
1
foot
12
inches
·
19.8
pounds
1000
feet
·
16
ounces
1
pound
≈
0.475
ounces
Notice that with the miles per gallon example, if we double the miles driven, we double the gas used. Likewise, with the map distance example, if the map distance doubles, the real-life distance doubles. This is a key feature of proportional relationships, and one we must confirm before assuming two things are related proportionally.
Other quantities just don’t scale proportionally at all.
Sometimes when working with rates, proportions, and percents, the process can be made more challenging by the magnitude of the numbers involved. Sometimes, large numbers are just difficult to comprehend.
Example 8
Compare the 2010 U.S. military budget of $683.7 billion to other quantities.
Here we have a very large number, about $683,700,000,000 written out. Of course, imagining a billion dollars is very difficult, so it can help to compare it to other quantities.
If that amount of money was used to pay the salaries of the 1.4 million Walmart employees in the U.S., each would earn over $488,000.
There are about 300 million people in the U.S. The military budget is about $2,200 per person.
If you were to put $683.7 billion in $100 bills, and count out 1 per second, it would take 216 years to finish counting it.
Example 9
Compare the electricity consumption per capita in China to the rate in Japan.
# A total and a rate can point in opposite directions. Book data (2011).
# ADD a country of your own: "name": (kilowatt-hours per year, population)
countries = {
"China": (4_693_000_000_000, 1_344_130_000),
"Japan": (859_700_000_000, 127_817_277),
"Iceland": (17_000_000_000, 320_000), # <-- try deleting this line
}
print("%-10s %22s %15s %16s" % ("country", "total KWH/yr", "population", "KWH per person"))
print("-" * 66)
rows = []
for name, (kwh, pop) in countries.items():
per_capita = kwh / pop
rows.append((name, kwh, pop, per_capita))
print("%-10s %22s %15s %16.1f" % (name, "{:,}".format(kwh), "{:,}".format(pop), per_capita))
print("-" * 66)
by_total = sorted(rows, key=lambda r: -r[1])
by_rate = sorted(rows, key=lambda r: -r[3])
print("ranked by TOTAL use : " + " > ".join(r[0] for r in by_total))
print("ranked by PER PERSON: " + " > ".join(r[0] for r in by_rate))
print()
a, b = "China", "Japan" # <-- CHANGE these two names to compare any pair
ka, pa = countries[a]
kb, pb = countries[b]
print("%s uses %.1f times the electricity of %s overall," % (a, ka / kb, b))
print("but %s uses %.1f times as much PER PERSON as %s."
% (b, (kb / pb) / (ka / pa), a))
print("Same two numbers, opposite headline. The denominator decides.")
To address this question, we will first need data. From the CIA[1] website we can find the electricity consumption in 2011 for China was 4,693,000,000,000 KWH (kilowatt-hours), or 4.693 trillion KWH, while the consumption for Japan was 859,700,000,000, or 859.7 billion KWH. To find the rate per capita (per person), we will also need the population of the two countries. From the World Bank[2], we can find the population of China is 1,344,130,000, or 1.344 billion, and the population of Japan is 127,817,277, or 127.8 million.
Show solution
Computing the consumption per capita for each country:
China: 4,693,000,000,000 K W H 1,344,130,000 people ≈ 3491.5 KWH per person
Japan: 859,700,000,000 K W H 127,817,277 people ≈ 6726 KWH per person
While China uses more than 5 times the electricity of Japan overall, because the population of Japan is so much smaller, it turns out Japan uses almost twice the electricity per person compared to China.
[1] www.cia.gov/library/publicat.../2042rank.html
[2] http://data.worldbank.org/indicator/SP.POP.TOT
Adapted from Math in Society by David Lippman, hosted on LibreTexts (math.libretexts.org) and licensed under CC BY-SA 3.0. Changes were made. License: CC-BY-SA-3.0 .