Boost logo

Boost Users :

From: Scott Sinclair (scott.sinclair_at_[hidden])
Date: 2002-11-14 08:00:21


Hi

Unless I've missed something, I don't think uBlas provides a way to do this
(other than the _very_ inefficient prod(A, A) in a loop). If you need to do
this frequently with large matrices and/or large powers (n) then you'll need
to look at diagonalizing your matrix using eigenvalue/vector decomposition.
This reduces your task to raising the values on the diagonal of a diagonal
matrix to the power of n and doing two matrix multiplies and an inverse.

Finding the eigenvalues and corresponding eigenvectors of your matrix is a
non-trivial task which imposes some restrictions on your matrix. Refer to
"Numerical recipes in C" by Press et al. for some guidance as well as any
good textbook on linear algebra.

Hope this helps,
Scott

> -----Original Message-----
> From: agiatojon [mailto:JonAgiato_at_[hidden]]
> Sent: 14/11/2002 14:17
> To: Boost-Users_at_[hidden]
> Subject: [Boost-Users] Getting a matrix to the power of n
>
>
> Hello all,
> I am working with a formula which requires me to get the result of a
> matrix to the power of n (i.e. pow(matrix, n)) but as expected, the
> <cmath> function pow() is unable to convert from type double to
> matrix. Does the matrix library have this sort of functionality
> built in, or maybe some other part of boost? Thanks!
>
> Jon Agiato
> JonAgiato_at_[hidden]

The contents of this email may be confidential. Unauthorised use is prohibited. Umgeni Water does not accept liability for any statements and opinions which are the sender's own view and not expressly made on its behalf.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net