|
From: massimo s. <mas...@un...> - 2006-06-06 18:21:56
|
Hi, I'm trying to do a simple linear least squares fit of some data in an application. The relevant code runs about as follows, following closely the example found on http://mail.python.org/pipermail/python-list/2006-March/331693.html --------- import matplotlib.numerix as nx contact_x_points=nx.array(x_points[left_bound:right_bound]) contact_y_points=nx.array(y_points[left_bound:right_bound]) A=nx.ones((len(contact_x_points),2)) A[:,0]=contact_x_points result=nx.linear_algebra.linear_least_squares(A,contact_y_points) --------- ...but when I run, it crashes with: File "hooke.py", line 202, in find_contact_point result=nx.linear_algebra.linear_least_squares(A,contact_y_points) File "/usr/lib/python2.3/site-packages/Numeric/LinearAlgebra.py", line 416, in linear_least_squares nlvl = max( 0, int( math.log( float(min( m,n ))/2. ) ) + 1 ) OverflowError: math range error I also tried using scipy: ----------- import scipy as sp contact_x_points=sp.array(x_points[left_bound:right_bound]) contact_y_points=sp.array(y_points[left_bound:right_bound]) A=sp.ones((len(contact_x_points),2)) A[:,0]=contact_x_points result=sp.linalg.lstsq(A,contact_y_points) ------------- ... with another error: array_from_pyobj:intent(hide) must have defined dimensions. rank=1 dimensions=[ 0 ] Traceback: [...] File "hooke.py", line 202, in find_contact_point result=sp.linalg.lstsq(A, contact_y_points) File "/usr/lib/python2.3/site-packages/scipy/linalg/basic.py", line 344, in lstsq overwrite_b = overwrite_b) flapack.error: failed in converting hidden `s' of flapack.dgelss to C/Fortran array In my .matplotlibrc the numerix backend is Numeric. I'm on Debian Sarge; MPL version is 0.82 ; Scipy is 0.3.2 It must be noticed that I fail to declare A=nx.ones((len.contact_x_points),2),dtype=float) as the example should seem to require, because it gives me another error: TypeError: ones() got an unexpected keyword argument 'dtype' ...so if this is the problem, please tell me how to correctly pass the dtype argument. Since I'm quite a scipy/numeric newbie I guess there could be some obvious blunder and/or more correct way of obtaining my fit, and I'd be thankful to anyone pointing me at the solution... Thanks, Massimo -- Massimo Sandal University of Bologna Department of Biochemistry "G.Moruzzi" snail mail: Via Irnerio 48, 40126 Bologna, Italy email: mas...@un... tel: +39-051-2094388 fax: +39-051-2094387 |