SciPy - I need an example of use of linalg.lstsq()
I. Myself
No.Spam at Spam.none
Wed May 10 18:43:20 CEST 2006
Robert Kern wrote:
> I. Myself wrote:
>
>> And it has to run on Windows, so it can't use xplt.
>>
>
> Huh?
>
> A. xplt runs on Windows, too.
> B. xplt has nothing to do with linalg.lstsq().
> C. xplt has been removed from scipy.
>
Thank you. I have been misled by the Scipy Tutorial by Travis
Oliphant. It has an example which uses xplt; it also mentions that xplt
is only for x-windows.
Your example below seems like just what I'm looking for. I will try it out.
Thanks again.
Mitchell Timin
>
>> I would prefer that it use the simplest multi-dimensional model, z = k +
>> a*x1 + b*x2 + c*x3 + d*x4
>>
>
> In [1]: import numpy as np
>
> In [2]: np.linalg.lstsq?
> Type: function
> Base Class: <type 'function'>
> String Form: <function lstsq at 0x6d3f30>
> Namespace: Interactive
> File:
> /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/numpy-0.9.7.2476-py2.4-macosx-10.4-ppc.egg/numpy/linalg/linalg.py
> Definition: np.linalg.lstsq(a, b, rcond=1e-10)
> Docstring:
> returns x,resids,rank,s
> where x minimizes 2-norm(|b - Ax|)
> resids is the sum square residuals
> rank is the rank of A
> s is the rank of the singular values of A in descending order
>
> If b is a matrix then x is also a matrix with corresponding columns.
> If the rank of A is less than the number of columns of A or greater than
> the number of rows, then residuals will be returned as an empty array
> otherwise resids = sum((b-dot(A,x)**2).
> Singular values less than s[0]*rcond are treated as zero.
>
>
> In [3]: z = np.rand(10)
>
> In [4]: x1 = np.rand(10)
>
> In [5]: x2 = np.rand(10)
>
> In [6]: x3 = np.rand(10)
>
> In [7]: x4 = np.rand(10)
>
> In [8]: A = np.column_stack([x1, x2, x3, x4, np.ones(10, float)])
>
> In [9]: A
> Out[9]:
> array([[ 0.07257264, 0.36544251, 0.68467294, 0.33813333, 1. ],
> [ 0.09520828, 0.27102091, 0.04673061, 0.12905473, 1. ],
> [ 0.839834 , 0.46010114, 0.3949568 , 0.38983012, 1. ],
> [ 0.49776387, 0.70666191, 0.85005579, 0.47738743, 1. ],
> [ 0.25457977, 0.93335912, 0.88441593, 0.05255062, 1. ],
> [ 0.85982216, 0.97920853, 0.27991214, 0.94230651, 1. ],
> [ 0.03224487, 0.1275237 , 0.66943552, 0.320765 , 1. ],
> [ 0.86807363, 0.63800103, 0.67153924, 0.69125023, 1. ],
> [ 0.26571213, 0.68845408, 0.06478114, 0.03657494, 1. ],
> [ 0.46615143, 0.99464106, 0.9303421 , 0.61363703, 1. ]])
>
> In [10]: np.linalg.lstsq(A, z)
> Out[10]:
> (array([-0.32421087, -0.23330787, 0.13369118, -0.28334431, 0.84010014]),
> array([ 0.22958042]),
> 5,
> array([ 4.59505886, 1.1181838 , 0.85704672, 0.70211311, 0.4420187 ]))
>
>
> If you have more scipy questions, you will probably want to ask on the
> scipy-user list:
>
> http://www.scipy.org/Mailing_Lists
>
>
--
I'm proud of http://ANNEvolve.sourceforge.net. If you want to write software,
or articles, or do testing or research for ANNEvolve, let me know.
Humans may know that my email address is: (but remove the 3 digit number)
zenguy at shaw666 dot ca
More information about the Python-list
mailing list