Thanks a lot. Just a few minutes ago I saw here on the list an announcement
of the "Least-squares curve fitting package" with poly_fit, among others.
I think this is good enough for me at the moment.
I will come back to your suggestion concerning polynomials when I have a
better command of the type system. For polynomials there is surprisingly
many more interesting functionality than is usually implemented.
On Friday, May 9, 2014 6:30:06 AM UTC+2, Jameson wrote:
>
> As the author of Polynomial.jl, I'll say that being "a bit
> unsatisfied" is a good reason to make pull requests for any and all
> improvements :)
>
> While loladiro is now the official maintainer of Polynomials.jl (since
> he volunteered to do the badly-needed work to switch the coefficient
> order), if I had access, I would accept a pull request for additional
> roots() methods (parameterized by an enum type, for overloading, and
> possibly also a realroots function), horner method functions, polyfit,
> etc.
>
> I would not accept a pull request for allowing a vector instead of a
> Polynomial in any method, however. IMHO, this is a completely
> unnecessary "optimization", which encourages the user to conflate the
> concept of a Vector and a Polynomial without benefit. It could even
> potentially lead to subtle bugs (since indexing a polynomial is
> different from indexing a vector), or passing in the roots instead of
> the polynomial.
>
> I think merging your proposal for a polyfit function with
> StatsBase.fit makes sense. You could use a tuple parameter to combine
> the Polynomial parameter with the degrees information:
>
> function fit((T::(Type{Polynomial},Int), data)
> P, deg = T
> return Poly( pfit(deg, data) ) #where pfit represents the
> calculation of the polynomial-of-best fit, and may or may not be a
> separate function
> end
> fit((Polynomial,3), data)
>
> David de Laat put together a pull request to add his content to
> Polynomial: https://github.com/vtjnash/Polynomial.jl/pull/25. He also
> indicated he would update it for Polynomials.jl so that it could be
> merged.
>
> On Thu, May 8, 2014 at 8:23 AM, Hans W Borchers
> <[email protected]<javascript:>>
> wrote:
> > Because I was a (tiny) bit unsatisfied with the Polynomial package,
> > I wrote my own polynomial functions, like
> >
> > - polyval() to be applied to vectors as well as polynomial types
> > - roots() that uses the Matlab order in constructing the companion
> > matrix and finding all roots
> > - horner() that utilizes the Horner scheme to compute the value
> > and the derivative of the polynomial at the same time
> > (useful for a specialized version of Newton's algorithm)
> > - a deflated Horner function to return p(x) = (x - x0)*q(x) when
> > x is a root of polynomial p
> > - polyfit() for fitting polynomials to data, etc.
> >
> > I think a polyfit() function should in any case be a part of a
> polynomial
> > package. (Is such a function contained in any other package?)
> >
> > Besides that an implementation of the Muller algorithm for computing
> zeros
> > of
> > polynomials might be helpful. Or the calculation of the number of real
> roots
> > of a polynomial in an interval (Descartes' and Sturm's rules). There is
> more
> > interesting numerical stuff that could be part of such a polynomial
> package.
> >
> >
> > On Thursday, May 8, 2014 3:42:03 AM UTC+2, Tony Kelman wrote:
> >>
> >> Yes, Polynomial is using a different convention than Matlab or what you
> >> used below in how it constructs the companion matrix. Polynomials.jl
> uses
> >> yet another convention. Both produce more accurate (comparable to
> Matlab)
> >> results for the roots of the Wilkinson polynomial if you just switch
> the
> >> indices during construction of the companion matrix. See
> >>
> https://github.com/vtjnash/Polynomial.jl/blob/master/src/Polynomial.jl#L350-L353
>
> >> for Polynomial, or
> >>
> https://github.com/loladiro/Polynomials.jl/blob/master/src/Polynomials.jl#L324-L325
>
> >> for Polynomials.
> >>
> >> I think the intent (see
> https://github.com/vtjnash/Polynomial.jl/issues/5)
> >> is to deprecate Polynomial and switch the coefficient order by
> developing
> >> under the Polynomials name going forward, but Keno's probably been too
> busy
> >> to register the new package, turn on issues, etc. I'm doing some work
> on
> >> piecewise stuff in a branch of Polynomials, I might just adopt the
> package.
> >> I know David de Laat has put together packages for sparse multivariate
> >> polynomials https://github.com/daviddelaat/MultiPoly.jl and orthogonal
> >> polynomials https://github.com/daviddelaat/Orthopolys.jl, don't think
> >> they're registered but it might make sense to eventually unify all of
> these
> >> into the same package.
> >
> >
>