Making A New Slide Rule Scale
A couple of examples illustrating how to create scales for your own special functions on a slide rule.
For the past couple of posts we looked at how to determine the placement of marks for a scale on a slide rule for common functions, and examined some computer code so that you could make your own set of scales. But as we know not all slide rules are made with only “common” scales. Many slide rules — often termed “specialty” slide rules — have special scales to perform particular calculations. I often think of these types of slide rules as “programmed” slide rules, as opposed to basic or advanced general-purpose rules. More like running a code on a programmable calculator or computer. A function that is to be evaluated is “built in” as a scale on the slide rule.
Below I will discuss two examples of how to develop a special scale, or set of scales, to perform a particular calculation or evaluation of particular function. The first is just a function I picked out of thin air to demonstrate the process. The second example deals with the development of a three-segment scale for performing a calculation in special relativity.
Example I
Suppose we want to have the function
marked as a new scale on our slide rule (for some reason), where x runs between 1 and 10. Let's see what this looks like:
We see that the function is monotonically increasing and so we can find a single-valued inverse function. Note that if our plot was going up and down as we move along x, then there would be some values of y = f(x) for which there would be more than one value of x that could produce those equal values of y. For a single scale that is applied along the entire length of a slide rule it is important that the function be either continuously increasing or decreasing.
To find our inverse function g(y), we can set our function f(x) equal to y and solve for x:
Note that we use the positive root when we took the first square root above, because if we chose the negative root we would find “x2 < 0” which would only generate imaginary values. To get any possible real values we needed to use the positive root.
What limits do we need to set for our y? At x = 1, we get y = 0.3. And at x = 10, we get y = 1020. So now we need to choose values of y between these limits to mark on our new scale, which we will call the "X" scale. Once chosen, we evaluate our inverse function above for these values. We can use our plotting function that we showed in our last post to draw the scales:
MakeScale = function(y, g, gs, name){
plot(0, 0, type="n", xlim=c(0,10), ylim=c(0,3), main=name,
xlab="", ylab="", xaxt="n", yaxt="n", bty="n")
L0 = 10
abline(h=1.5)
segments(L0*log10(g), 1.1,
L0*log10(g), 1.9, lwd=2, col="blue")
segments(L0*log10(gs), 1.3,
L0*log10(gs), 1.7, lwd=2, col="blue")
text( L0*log10(g), 2.7, y )
}
I chose a few major lines to mark (yX
) and some subdivisions (yXs
); you might want to choose others. Then, we evaluate our inverse function, g(y), using these values;
yX = c(0.3,1,2,3,4,5,6,7,8,9, 10,20,40,60,80,100,200,400,600,1000)
yXs = c(0.5,1.5,2.5,3.5,4.5,15,30,50,70,90,150,300,500,700,800,900)
gX = sqrt( sqrt(1 + 10*yX ) - 1)
gXs = sqrt( sqrt(1 + 10*yXsub) - 1)
Next, after setting up any general plotting parameters, we execute the MakeScale
function:
MakeScale(yX, gX, gXs, "X scale")
MakeScale(yD, gD, gDs, "D scale")
which includes the generation of a standard D scale, using the marks we made during our last post for the D scale. Here is our resulting X scale along with the D scale, followed by the plot we made above for direct comparison:
Example II
Next, let's try making a completely new scale for a specialty slide rule but, to give our new project some purpose, let's make a scale that could be of interest to someone working in the field of particle physics. Suppose we have a charged particle of known rest mass m traveling through air that enters a device that measures the kinetic energy of the particle. For example, perhaps the device measures the heat absorbed by the instrument as it stops the particle’s motion. We would like to calculate the speed that the particle had, relative to the speed of light, say, just before it entered this “calorimeter”.
The total energy of a particle is the sum of its rest energy, E0 = mc2, and its kinetic energy, call it T. Here, c is the speed of light. The total energy is given by
and, according to Einstein's theory of special relativity, it is also given by
where v is the particle's speed. Let's define the ratio v/c as y, such that this will be the value we seek on our slide rule scale. We solve for y in terms of the ratio of T/E0, which we will define as x.
Thus, we equate our two expressions for the total energy, and divide both sides by E0 to get
from which
or,
This is the function that we want to put on a slide rule. We want this to be our “f(x)”. Given a value x = T/E0, we find the value y = v/c = f(x). Here is a plot of this function:
We see that as the kinetic energy (x) of the particle is increased its speed (y) gets closer and closer (though never quite reaches) the speed of light. The vertical dotted lines are for values of x = 0.01, 0.1, 1, and 10. We see that the three regions: 0.01 < x < 0.1, 0.1 < x < 1, 1 < x < 10 have very different characteristics. So, let's make a scale for each of these three different regions. Below are close-ups of the three regions of interest, drawn using logarithmic scales along the horizontal axes:
What we need to do next, though, is to find the necessary inverse function. We have
but we got this function by starting out with the following:
And so solving for x right away we get
This actually provides us with our inverse function:
Given a value x, we can find its corresponding y = f(x). If we are given y, then we can find x = g(y). And to place a mark for value “y” on our new scale, we would place it at a distance d(y) from the left index, where d(y) = L0 ╳ log[ g(y) ], so that it lines up with the corresponding L0 ╳ log (x).
Let's start out by making a scale for which the D scale runs from x = T/E0 = 1 to x = T/E0 = 10. This is consistent with our third plot shown above, so we'll call this scale b3. What should be our limits for our y variable? For x = 1, we get y = 0.866. For x = 10, we find y = 0.9958. So we want values on our b3 scale that span this range.
yb3 = c(0.8, 0.9, 0.9958)
yb3s = c(0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,
0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99)
gb3 = (1/sqrt(1-yb3^2) - 1)
gb3s = (1/sqrt(1-yb3s^2) - 1)
And if, as in our previous post, we create a plot region, apply the MakeScale
function, and compare it to a D scale, we find the following:
MakeScale(yb3,gb3,gb3s,"b3 scale")
MakeScale(yD, gD, gDs, "D scale")
This tells us that when the particle's kinetic energy gets to 10 times its rest energy, then the particle would be traveling at 99.58% the speed of light. When its kinetic energy is equal to its rest energy (x = 1), its speed would be about 86.6% c.
To make our next scale, call it b2, we want x on the D scale to represent values between 0.1 and 1. For this case, wherever there has been an x we want to use x/10, since we still presume that the true x on D goes from 1 to 10. And so our inverse function for this scale becomes
Here, the limits of the y values will be given by x/10 = 0.1 (x = 1), for which y = 0.417; and our limit for x/10 = 1 (x = 10) is still 0.866, as found previously.
Let's chose the following for our values of y to make our marks, compute the inverse function values for each, and then plot:
yb2 = c(0.5,0.6,0.7,0.8,0.9)
yb2s = seq(0.41, 0.89, 0.01) # = seq(start, end, by)
gb2 = (1/sqrt(1-yb2^2) - 1)*10
gb2s = (1/sqrt(1-yb2s^2)- 1)*10
MakeScale(yb2,gb2,gb2s,"b2 scale")
MakeScale(yD, gD, gDs, "D scale" )
We see that a particle with kinetic energy equal to 10% of its rest energy would have a speed of almost 42% of the speed of light.
And finally we can make the b1 scale in the same way, but multiply our inverse function by 100 to take into account that the D scale now represents values from 0.01 to 0.1. Here, the range of values of y will be given by 0.1404 for x/100 = 0.01 (x = 1), and 0.417 for x/100 = 0.1 (x = 10).
yb1 = c(0.1,0.2,0.3,0.4,0.5)
yb1s = seq(0.1, 0.45, 0.01)
gb1 = (1/sqrt(1-yb1^2) - 1)*100
gb1s = (1/sqrt(1-yb1s^2) - 1)*100
MakeScale(yb1,gb1,gb1s,"b1 scale")
MakeScale(yD, gD, gDs, "D scale" )
A particle with kinetic energy equal to 1% of its rest energy would have a speed of 14% of the speed of light. That's still 42 million meters per second!
Here is a single plot with all of our new scales directly above a single D scale:
b1: 0.01 < x < 0.1
b2: 0.1 < x < 1
b3: 1 < x < 10
An example problem:
Suppose we have a proton traveling down a beam line at an accelerator facility and its kinetic energy is determined to be 250 MeV. (1 MeV = 106 eV = 1.6 ╳ 10-13 Joule.) The rest energy of the proton is 938 MeV. What is the velocity of the proton relative to the speed of light?
Using our newly developed slide rule, we would place 938 on C over 250 on D. The result of 250/938 would be found under the index on D — 0.267 — using the cursor. Since our value of “x” of 0.267 is between 0.1 and 1, we would need to use the b2 scale to find under the cursor: b2 = 0.614. This is the speed our proton had relative to the speed of light — v = 61.4% c — before being absorbed by the calorimeter.
Another example problem:
An alpha particle (an ionized Helium nucleus, with rest energy of 3727 MeV), is recorded passing in a straight line through two particle detectors. The timing of the signals received from the two detectors and the known distance between them determines the particle’s speed. If its speed is found to be 0.165c, what is the kinetic energy of the alpha particle?
Our value of v/c = 0.165 occurs on the b1 scale. In our image above, if we follow this value to the D scale we cross at a value of x of about 1.4; since on b1 our variable x goes from 0.01 to 0.1, then this corresponds to x = 0.014. Placing the left index of C at x on D, we can now multiply by the rest energy, 3727 MeV, to find that the alpha particle has a kinetic energy of 52 MeV.
Can you develop a new b0 scale, and find the speed, relative to the speed of light, of a proton with kinetic energy 3.5 MeV using your new scale?
Mike, have you ever seen the Relativator slide rule manufactured by Atomic Laboratories? If not, then congrats, because you basically redesigned it :-)
Here is a link to an article about the Relativator published in Symmetry Magazine in 2006: https://www.symmetrymagazine.org/sites/default/files/legacy/pdfs/200512/artifact_relativator.pdf
The inner disk of the Relativator has a 10 decade logarithmic eV scale from 1 eV to 1e10 eV. Gauge marks are included for particle energies, including marks at 3.73e9 eV for the alpha particle and 9.4e8 eV for the proton. The 10 decade logarithmic ɣ-1 scale gives the ratio of kinetic energy to rest energy, with a range from 1e-6 to 1e4. The outer scale labeled β is the same v/c scale you designed, but covers the range 0.0015 to 0.999999995, and is read against the ɣ-1 scale.