
NavList:
A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding
Re: Computing tables
From: Jim Manzari
Date: 1999 Sep 10, 3:34 PM
From: Jim Manzari
Date: 1999 Sep 10, 3:34 PM
"Richard B. Emerson" wrote: > ...So, once again, I'll ask those who've either re-computed their own tables > or otherwise adopted techniques using tables outside of the HO "family", how > do you verify your tables? Rick --Here's my nickel's worth, which I hope will be helpful... What I think you're asking has to do with the concept of computational "accuracy" and "precision" -- two separate or distinct aspects of the your question. On one hand you might ask...are the numerical algorithms in use sufficiently robust to avoid problems when functional arguments approach trigonometric limits, such as when the tangent of an angle approaches 90-degrees? Errors of this type might be classified as discrepancies in "accuracy". On the other hand, you might ask...does the underlying math library provide sufficient precision? Does the math library in use properly account for rounding, truncation, and stability inherent in discrete or finite precision computation? Errors of this type might be classified as discrepancies in "precision". In order to understand the differences (errors) between two navigation tables, say that of an amateur table vs an "official" almanac table, one would have to 1) evaluate the underlying algorithms to determine the comparative "accuracy", and 2) evaluate the underlying math libraries to determine the comparative "precision". Generally speaking, given the current state of computing sciences, floating point hardware, and standards such as IEEE and ANSI, one would be hard pressed to find a math library now-days that is not precise, error free, and stable. Certainly the latter statement is true at the levels of precision and repeatability needed for practical navigation. Users of a math library must "trust" that the library will produce correct results. Ultimately the "correctness" of a math library is traceable back to some standard, such as the "Handbook of Mathematical Functions", Abrammowitz & Stegun, National Bureau of Standards. Regarding algorithmic accurary...this is, in my view, where the "art" of computation comes into play. There are a lot of "tricks" needed in order to produce stable and accurate astronomical tables (and by implication, navigational tables). Jean Meeus, in his "Astronomical Algorithms" touches on this in Chapter 1, Hints and Tips. Techniques such as how to handle powers of time, avoiding powers, shortening of program to avoid rounding errors, and safety tests are just a few of the techniques discussed by Meeus. Montenbruck and Pfleger also touch on this in the introduction to their "Astronomy of the Personal Computer". "Numerical Recipes in C" by Press, et. al. and "The Standard C Library" by Plauger are also good sources of computational "tricks", in my view. Having said all this, personally I always spot-check any algorithm I develop against the "Astronomical Almanac", paying particular attention to "cardinal" points where the algorithm may break down. If my new table is within a few tenths of an arc-second, compared to the "official" Astronomical Almanac results, I accept that it is precise and accurate, good enough for my purpose. Knowing that I've taken care to avoid errors by following the guidelines of experts like Meeus, et. al., I can be relatively confident that my algorithm will probably be "good enough" over a wide range of arguments (there are formal ways to prove correctness, but for amateur navigation I don't think these are necessary). Judgement plays a prominent role, as it must, in this type of evaluation. The art of celestical navigation is, after all, not about right or wrong, but rather about better or worst. Regards, Jim Manzari