[comp.sys.ibm.pc.hardware] Numerical Methods for Poynomial Root Finding?

rcollins@altos86.Altos.COM (Robert Collins) (01/15/91)

In article <5231@trantor.harris-atd.com> blombardi@x102c.ess.harris.com (Bob Lombardi 44139) writes:
>
>Lacking that (I get three strikes, don't I?) can anyone refer me to 
>source code in Pascal, BASIC, or FORTRAN that finds the roots of 
>polynomials?  I can usually translate the other two languages into TP
>if I get code in them. 
>

I'm not familiar with the algortithm you mentioned, but I programmed a
polynomial ROOT algorithm using BAIRSTOW's method in 8087 assembler.
It's short, and most definitely fast -- some 28X faster than compiled
QUICK-BASIC.  BAIRSTOW's method uses partial derivatives to force
convergence of polynomial roots.  It finds all real and complex roots.
Each root of a 7th degree polynomial can usually be solved in less than
10 iterations to an accuracy of 1E-6.  I wrote the assember to interface
to (most) any high-level language, using any memory model size (through
changing compile-time switches).  So I would think this algorithm could
be interfaced to Turbo-Pascal...though I have never tried it.
If memory serves me correctly, the algorithm has tunable parameters. 
For example, the size of the polynomial can be variable -- at run time,
the convergence factor is also tunable, but only at compile-time.

If interested, I'd be happy to send anybody a copy of the source code.

-- 
"Worship the Lord your God, and serve him only."  Mat. 4:10
Robert Collins                 UUCP:  ...!sun!altos86!rcollins
HOME:  (408) 225-8002
WORK:  (408) 432-6200 x4356