# Polyfit

Thanks to both of you. It worked just fine

I will push my luck and ask if any of you knows of a module to fit a piecewise polynomial to a list of (X,Y) points.
something like
p=piece-wiseFit([1,2,5,7,8],[3,4,2,5,5],2)
would return [[A0,B0,C0],[A1,B1,C1}[A2,B2,C2},[A3,B3,C3]}, coefficients for the 4 polynoms
A0+B0.X+C0.X.X
A1+B1.X+C1.X.X
A2+B2.X+C2.X.X
A3+B2.X+C3.X.X

This is a classic and I expect the code to be written somewhere, eventhough I could not find it even when I "Feel lucky" with Google.

Takk

Kveðja

Jean-Baptiste

···

On Fri, 19 Mar 2004 09:45:10 +1000 "Gary Ruben" <gazzar@...25...> wrote:

Hi Jean-Baptiste,
Your problem is that polyfit (and polyval) expect Numeric array arguments, so you need to do:

>>> x=array([1,2,3])
>>> y=array([1,2,1])
>>> p=polyfit(x,y,2)
>>> p
array([-1., 4., -2.])
>>> polyval(p,array([1,2,3]))
array([ 1., 2., 1.])

Note that your example only has 3 points, so can fit a 2nd order polynomial exactly as I've done.
If you try to fit a 3rd order, the method polyfit is using seems to fail. ie.
>>> p=polyfit(x,y,3)
>>> p
array([ 1.09375, -5.0625 , 7.125 , -2.875 ])
>>> polyval(p,array([1,2,3]))
array([ 0.28125, -0.125 , 2.46875])

ideally p would have been array([0., -1., 4., -2.]) so you'll have to be careful.

Gary

----- Original Message -----
From: Jean-Baptiste Cazier <Jean-Baptiste.cazier@...15...>
Date: Thu, 18 Mar 2004 14:36:45 +0000
To: matplotlib-users@lists.sourceforge.net
Subject: [Matplotlib-users] Polyfit

> Sæll
>
> One mroe question from me today
>
> I have some trouble running polyfit with matplotlib-0.52
> I give a list of x values and y values as well as the degree of the desired polynome. But all I get is the following error
>
> >>> x=[1,2,3]
> >>> y=[1,2,1]
> >>> polyfit(x,y,3)
> Traceback (most recent call last):
> File "<<console>>", line 1, in ?
> File "/usr/lib/python2.2/site-packages/matplotlib/mlab.py", line 341, in polyfit
> X = Matrix(vander(x, N+1))
> File "/usr/lib/python2.2/site-packages/matplotlib/mlab.py", line 383, in vander
> X = ones( (len(x),N), x.typecode())
> AttributeError: 'list' object has no attribute 'typecode'
>
>
> Any idea ?
>
> Thanks
>
> Jean-Baptiste
>
> --
> -----------------------------
> Jean-Baptiste.Cazier@...15...
>
> Department of Statistics
> deCODE genetics Sturlugata,8
> 570 2993 101 Reykjavík
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

--
___________________________________________________________
Sign-up for Ads Free at Mail.com