Changeset 5639:007b55ab186f


Ignore:
Timestamp:
08/12/07 10:46:30 (6 years ago)
Author:
William Stein <wstein@…>
Branch:
default
Message:

Fix some doctests, etc. and improve function names for matrices over RDF.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sage/matrix/matrix_real_double_dense.pyx

    r5637 r5639  
    404404        return e, [c.parent().span_of_basis([c], check=False) for c in v.columns()] 
    405405             
    406     def eigen(self): 
    407         """ 
    408         Computes the eigenvalues and eigenvectors of this matrix acting 
    409         *from the right*.  
     406    def eigen_left(self): 
     407        """ 
     408        Computes the eigenvalues and *left* eigenvectors of this 
     409        matrix m acting *from the right*.  I.e., vectors v such that 
     410        v*m = lambda*m. 
    410411 
    411412        OUTPUT: 
    412413             eigenvalues -- as a list 
    413              corresponding eigenvectors -- as an RDF matrix whose columns are 
    414                            the eigenvectors. 
     414             corresponding eigenvectors -- as an RDF matrix whose columns 
     415                           are the eigenvectors. 
    415416 
    416417        EXAMPLES: 
    417418            sage: m = Matrix(RDF, 3, range(9)) 
    418             sage: m.eigen()           # random-ish platform-dependent output (low order digits) 
    419             ([13.3484692283, -1.34846922835, -9.96461975961e-16], 
    420              [-0.440242867236 -0.897878732262  0.408248290464] 
    421             [-0.567868371314 -0.278434036822 -0.816496580928] 
    422             [-0.695493875393  0.341010658618  0.408248290464]) 
     419            sage: m.eigen_left()           # random-ish platform-dependent output (low order digits) 
     420 
    423421 
    424422        IMPLEMENTATION: 
     
    431429 
    432430        import numpy 
    433         v_, m_ = numpy.linalg.eig(numpy.transpose(self.numpy())) 
    434         return ([sage.rings.complex_double.CDF(x) for x in v_],matrix(m_)) 
    435      
     431        v, m = numpy.linalg.eig(numpy.transpose(self.numpy())) 
     432        return ([sage.rings.complex_double.CDF(x) for x in v],matrix(m)) 
     433     
     434    def eigen_right(self): 
     435        """ 
     436        Computes the eigenvalues and *right* eigenvectors of this 
     437        matrix m acting *from the left*.  I.e., vectors v such that 
     438        m * v = lambda*m, where v is viewed as a column vector.  
     439 
     440        OUTPUT: 
     441             eigenvalues -- as a list 
     442             corresponding eigenvectors -- as an RDF matrix whose columns 
     443                           are the eigenvectors. 
     444 
     445        EXAMPLES: 
     446            sage: m = Matrix(RDF, 3, range(9)) 
     447            sage: m.eigen_right()           # random-ish platform-dependent output (low order digits) 
     448 
     449        IMPLEMENTATION: 
     450            Uses numpy. 
     451        """ 
     452        if not self.is_square(): 
     453            raise ValueError, "self must be square" 
     454        if self._nrows == 0: 
     455            return [], self 
     456 
     457        import numpy 
     458        v, m = numpy.linalg.eig(self.numpy()) 
     459        return ([sage.rings.complex_double.CDF(x) for x in v],matrix(m)) 
     460 
    436461    def solve_left_LU(self, b): 
    437462        """ 
Note: See TracChangeset for help on using the changeset viewer.