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:
massimo.sandal@...898...
tel: +39-051-2094388
fax: +39-051-2094387