Changeset 5639:007b55ab186f
- Timestamp:
- 08/12/07 10:46:30 (6 years ago)
- Branch:
- default
- File:
-
- 1 edited
-
sage/matrix/matrix_real_double_dense.pyx (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sage/matrix/matrix_real_double_dense.pyx
r5637 r5639 404 404 return e, [c.parent().span_of_basis([c], check=False) for c in v.columns()] 405 405 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. 410 411 411 412 OUTPUT: 412 413 eigenvalues -- as a list 413 corresponding eigenvectors -- as an RDF matrix whose columns are414 the eigenvectors.414 corresponding eigenvectors -- as an RDF matrix whose columns 415 are the eigenvectors. 415 416 416 417 EXAMPLES: 417 418 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 423 421 424 422 IMPLEMENTATION: … … 431 429 432 430 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 436 461 def solve_left_LU(self, b): 437 462 """
Note: See TracChangeset
for help on using the changeset viewer.
