[Numpy-tickets] [NumPy] #601: function for computing powers of a matrix

NumPy numpy-tickets@scipy....
Sun Oct 28 00:03:12 CDT 2007

#601: function for computing powers of a matrix
 Reporter:  LevGivon      |       Owner:  somebody
     Type:  enhancement   |      Status:  new     
 Priority:  normal        |   Milestone:          
Component:  numpy.linalg  |     Version:  devel   
 Severity:  normal        |    Keywords:          
 It would be nice to add the following function to numpy to allow for the
 raising of matricies to arbitrary exponents (and perhaps modify
 `matrix.__pow__()` to use this approach when one attempts to raise a
 matrix to a noninteger exponent):

 from numpy import diag,dot,shape,eye
 from numpy.linalg import eig,inv

 def mpower(x,y):
     '''Compute x raised to the power y when x is a square matrix and y
     is a scalar.'''

     s = shape(x)
     if len(s) != 2 or s[0] != s[1]:
         raise ValueError('matrix must be square')
     if y == 0:
         return eye(s[0])
     [e,v] = eig(x)
     d = diag(e)
     return dot(dot(v,d**y),inv(v))

Ticket URL: <http://scipy.org/scipy/numpy/ticket/601>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.

More information about the Numpy-tickets mailing list