Disclaimer: The views expressed here are mine alone, and not necessarily those of my employer or any organization with which I am affiliated. These views are not intended to advertise or offer legal services to the reader, or to be relied on as practical advice in any respect. Apparent statement of facts may or may not have been specifically researched beforehand. Unless I expressly indicate to the contrary, the material appearing here is original work, subject to copyright protection. Any reference in the text to specific individuals or companies who are not explicitly named is unintended and purely coincidental.
Comments? You can (try to) contact me at admin (at) limitsofknowledge (dot) com. Keep in mind that I'm still learning the technical aspects of blogging, and do have a demanding job, so don't be offended if it takes me a while to respond.

Sunday, April 9, 2006-- 6:32 am

Once, back in high school, an algebra teacher showed us how to compute compute square roots by hand. Being of a particular temperament, I liked the independence this gave me (independence from the calculator or from inaccurate tables, I suppose), as well as the idea that there were tools of understanding out there that were useful but that I hadn't discovered yet. I struggled off and on for quite a while since then-- on my own, as usual with such things, to figure out how to compute *other* roots-- cube roots, fifth roots, and so on. I consulted a large number of books, and the internet, to try to figure this out, but found no discussion of it anywhere. (What's particularly disheartening is that so many discussions, whether in print or on the internet, seem to parrot the same or similar examples. It makes me wonder how many people actually understand what they're writing.) Anyway, I eventually I figured it out for myself, and you see the results below.

For a clearer explanation, I'll initially explain the process by calculating the cube root of 74.

Cube roots. Since we'll be calculating a cube root, the first thing we need to do is construct a table of cubes, from 0 to 9.

We then need to portion out the digits of our number 74 in groups of 3 (three for cube roots, 5 for fifth roots, etc.), starting from the decimal point and extending in both directions. Thus 74 will be treated as 074.000:000:000, where I'm using colons as informal notation to show how the digits are parceled out.

Computing a root consists of following an iterative process not unlike long division in its basic pattern, although a little more involved. Before we plunge in, let's take a moment to consider what we'll be doing.

As you may remember from algebra, the expression (k+u)3 can be expanded as k3 + 3k2u + 3ku2 + u3. So one way of calculating 263 would be to regard it as (20 + 6)3: 203 + 3*202*6 + 3*20*62 + 63, or 8000 + 7200 + 2160 + 216 = 17576. We'll actually be doing the same thing here, only in reverse, where we know the total, and we know k (k for Known), and we're solving for u (u for Unknown). (In the following demonstration, I'll separate out a factor of 10 in k, but you should keep in mind that with each iteration, you're essentially multiplying your known solution by 10 so that you can make room for another digit's worth of accuracy in the 1's place.)

First Iteration. We take the first three digits of the problem, 074 or 74. We know none of the digits of the solution at this point, so k = 0, and we now choose as our value of u the single digit whose cube is as close to 74 without exceeding it. In this case, we'll let u = 4, because 43 is 64 but 53 is too high. (This also shows the importance of parceling out the digits of our problem in proper groups of 3. If we started counting from the 7, rather than from the decimal point, we'd end up selecting 9 in this case, and get the wrong answer.)

Because k is 0 in this iteration, we'll dispense with the algebra and simply subtract, 74 - u, to get 10 as the amount by which we came up short in our first approximation of the root. Then, in an analogy to long division, we drop down the next three digits.

Second Iteration. We know the first digit of our solution, so we'll let k = 4. We'll now need to find the highest possible value for u where 300*k2u + 30*ku2 + u3 still doesn't exceed 10,000.

300*16*u + 30*4*u2 + u3 = 4800*u + 120*u2 + u3; for u = 2 we get 9600 + 480 +8 = 10088, so we'll have to stick with u = 1, ending up with a total of 4800 + 120 + 1 = 4921. We subtract this, 10,000 - 4,921, to get 5079 as the amount by which we came up short in our second approximation. Drop down the next three digits.

Third Iteration. We now know the first two digits of our solution, so k = 41. Following the previous pattern, we need to choose the highest single-digit value for u where 300*k2u + 30*ku2 + u3, i.e., 300*1681*u + 30*41*u2 + u3, or 504300*u + 1230*u2 + u3 does not exceed 5,079,000.

For u = 9, we get 504300*9 + 1230*81 + 729 = 4,538,700 + 99,630 + 729 = 4,639,059. We subtract this, 5,079,000 - 4,639,059 = 439,941, to get the amount by which we came up short in our third approximation. Drop down the next three digits.

Fourth Iteration. We'll do one more. We now know the first three digits of our solution, so k = 419. As before, we need to find the hightest single-digit value for u not to exceed 300*k2u + 30*ku2 + u3, i.e., 300*175561*u + 30*419*u2 + u3, or 52,668,300*u + 1257*u 2 + u3.

For u = 8, we get 421,346,400 + 804,480 + 512 = 422,151,392, which is pretty close. We subtract this, 439,941,000 - 422,151,392 = 17,789,608. To continue, drop down the next three digits.

Of course, it never hurts to check our work. (4.198)3 = 73.982. The process is slow and puts your arithmetic skills to the test, but it will get you there in a reasonable amount of time-- especially if you don't need too many digits of accuracy.

Fifth root. To show how this method would be adapted to calculating another kind of root, I'll calculate the fifth root of 126. We begin, in that case with a table of fifth powers, from 0 to 9.

Next, as mentioned previously, we parcel out the digits of our given number in groups of five, counting in both directions from the decimal point. So we'll be looking at 00126.00000 00000. The expression (k+u)5 can be expanded to k5 + 5*k4u + 10*k3u2 + 10*k2u3 + 5*ku4 + u5. As before, we'll separate out a factor of 10 from k, so our coefficients will be 5*10000, 10*1000, 10*100, 5*10, 1.

First Iteration. We take the first five digits of problem, 00126, or 126. We know none of the digits of the solution at this point, so k = 0, and we now choose as our first value of u the single digit whose fifth is as close to 126 as possible without exceeding it. In this case, glancing at our chart, u = 2. u5 = 32, and 126 - 32 = 94, as the amount by which our first approximation came up short. We then drop down the next five digits.

Second Iteration. We know the first digit of our solution, so we let k = 2. We'll now need to find the highest possible single-digit value of u so that 50000*k4u + 10000*k3u2 + 1000*k2u3 + 50*ku4 + u5 does not exceed 9,400,000. Since k = 2, this simplifies to 800,000*u + 80,000*u2 + 4,000*u3 + 100*u4 + u5 < 9,400,000. If we let u = 6, we get 4,800,000 + 2,880,000 + 864,000 + 129,600 + 7776 = 8,681,376. If we let u = 7, we get 5,600,000 + 3,920,000 + 1,372,000 + 240,100 + 16,807 = 11,148,907. We subtract 9,400,000 - 8,681,376 = 718,624 as the amount by which our approximation came up short. We then drop down the next five digits.

Third Iteration. We know the first two digits of our solution, so we let k = 26. We'll now need to find the highest possible single-digit value of u so that 50000*k4u + 10000*k3u2 + 1000*k2u3 + 50*ku4 + u5 does not exceed 71,862,400,000. This simplifies to 22,848,800,000*u + 1,757,600,000*u2 + 676,000*u3 + 1,300*u4 + u5 not exceeding 71,862,400,000. If u = 2, we get 45,697,600,000*u + 7,030,400,000 + 5,408,000 + 20,800 + 32 = 52,733,428,832. We subtract 71,862,400,000 - 52,733,428,832 = 19,128,971,168, and we drop down the next five digits, ready to continue our computation as long as needed.