[SciPy-dev] check_random_complex_overdet (scipy.linalg.tests.test_basic.test_lstsq)

Nils Wagner nwagner at iam.uni-stuttgart.de
Tue Jun 27 02:23:45 CDT 2006


Hi all,

Please correct me but you will need

a.transpose().conjugate()

instead of

a.transpose()

in direct_lstsq(a,b) for c o m p l e x overdeternined systems.

Am I missing something ?

Nils

def check_random_overdet(self):
        n = 20
        m = 15
        a = random([n,m])
        for i in range(m): a[i,i] = 20*(.1+a[i,i])
        for i in range(4):
            b = random([n,3])
            x,res,r,s = lstsq(a,b)
            assert r==m,'unexpected efficient rank'
            #XXX: check definition of res
            assert_array_almost_equal(x,direct_lstsq(a,b))

def direct_lstsq(a,b):
    a1 = numpy.dot(numpy.transpose(a),a)
    b1 = numpy.dot(numpy.transpose(a),b)
    return solve(a1,b1)

 




More information about the Scipy-dev mailing list