You might look at Chebyshev polynomials. They have a "min-max of the error" property. One place to start is http://mathworld.wolfram.com/ChebyshevApproximationFormula.html Don't know if there's any python code for using these. --Clinton On 9/25/06, Robert Kern <robert.kern@gmail.com> wrote:
Bill Dandreta wrote:
What I want is a smooth curve that serves as an upper limit for a data plot. I would like it to be close to the data at the local maxima.
Does such a function exist?
No, not really. It would be quite tricky to construct such a beast. At the one end would be a complete interpolating curve that goes through every point; however, this will almost certainly not be as "smooth" as you want it. You would need to choose the length scale at which variations in the data are ignored. E.g. you need to find some means of determining why the curve should skip over A but try to get close to B.
________ /* *\ / A \ * \_______ *B
Possibly limiting the order of an interpolating polynomial or spline will be sufficient.
You might be able to formulate this as a constrained minimization problem using scipy.optimize.fmin_cobyla(). Take some curve f(x), minimize (f(x) - y) under the constraint (f(x) - y >= 0).
-- Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ SciPy-user mailing list SciPy-user@scipy.org http://projects.scipy.org/mailman/listinfo/scipy-user