Ron Doerfler's series on nomography has enchanted me since I first read it, as nomograms unite my interest in math and visualization with something more tactile. Nomograms generate deeper intuitions about mathematical relationships that are otherwise quite abstract, especially for children. Thus, as I anticipate a long road trip with three kids under eight, I plan to take advantage of the inevitable "When will we get there?" to teach something about rate, time, and distance, giving them a nomogram to explore the relationships for themselves. In this post I'm going to create a simple logarithmic nomogram using a 3×3 matrix. If you're not familiar with nomograms and designing them using matrix determinants, you'll find Doerfler's overview helpful.
Matrices for designing nomograms of three variables take the form
where each row describes the parametric equation for drawing the scale of one of the equation's variables. This is usually called the "standard nomographic form", and if you can convert a matrix whose determinant is zero into this form, you can use it to generate a nomogram.
While we could make a N- or Z-style nomogram out of the equation rt = d, I'm going to use logarithms instead, which relates rate, time, and distance as log(r) + log(t) = log(d). Given this logarithmic equation, we need a matrix whose determinant is log(r) + log(t) – log(d) = 0:
To convert this to standard nomographic form, we can use any determinant-preserving operations on matrices. Here we only need to add the second column to the third, then divide the third row by two:
In the standord nomographic form shown earlier, the first column expresses the x coordinates of the three scales. To get vertical scales, swap the first and second columns:
For r between 1 and 100 miles per hour, and t between 1 and 30 hours, we get a nomogram like this:
Let's make better use of the available vertical space by squaring up the scales with each other. To do that, we can apply a projection transformation, which moves certain points off to infinity. In our case, we want to make the line formed by the top of the scales parallel with the line formed by the bottom of the scales, so we'll project their point of intersection to infinity.
The equations for projecting are
where (xp, yp, zp) is the point which defines the projection, typically imagined as a light source casting a shadow. Any point in the y-z plane of the projecting point will be projected to infinity. We want (4,0) projected to infinity, so xp = 4. We can find yp by solving the second equation for a desired projection of (1,0) to (1,0):
To find zp, we'll do the same for the first equation:
Our projection point is (4,0,-3), which gives us the transformations
Applying these to the parametric equations in our matrix above gives us
Which produces this nomogram:
One of the most useful aspects of a three-variable nomogram like this is that it doesn't care which two variables are known and which is unknown. A straight line between the two knowns will identify the unknown, so not only does this answer the question "How much longer?", but also "How far have we gone?" and "How fast would we have to drive?"
Now to print it and find some rulers for the kids.