[SciPy-user] Orthogonal polynomial evaluation

Andrew York Andrew.G.York+scipy at gmail.com
Mon Apr 13 02:39:05 EDT 2009


 I am running a simulation with Scipy that needs to numerically
evaluate Jacobi polynomials. I have been using the function
scipy.special.orthogonal.jacobi() heavily. Evaluations of this
function are >90% of my simulation running time. Much more troubling,
I begin to see unphysical results when I need to evaluate high-order
Jacobi polynomials, and I suspect I am running into the problem warned
against here:

http://docs.scipy.org/doc/scipy/reference/special.html

"Warning Evaluating large-order polynomials using these functions can
be numerically unstable."

Another Scipy user seems to have run into a similar problem:

http://thread.gmane.org/gmane.comp.python.scientific.user/11206

 So, it seems the correct course of action is clear: I should identify
a stable algorithm to numerically evaluate Jacobi polynomials, I
should implement this algorithm in something fast like C, and then
call it from within python. I found some promising information on a
possible algorithm:

http://portal.acm.org/citation.cfm?id=363393
http://portal.acm.org/citation.cfm?id=362686.362700
https://people.sc.fsu.edu/~burkardt/f77_src/toms332/toms332.html

But I do not speak FORTRAN. I am also new to python and not yet
familiar with how to integrate a fast low-level language with python,
nor am I especially proficient in any low-level language. I suspect if
numerical evaluation of these functions was faster or more robust,
other scipy users would also benefit. Should I attempt this myself (in
C with weave?)? If I do, would others be interested in the results?

Is this an easy task for anyone else? I would greatly appreciate any
help or guidance.

Thank you for your attention.



More information about the SciPy-User mailing list