|
Boost Users : |
From: jhr.walter_at_[hidden]
Date: 2002-11-17 03:20:54
----- Original Message -----
From: Jon Agiato
To: Boost-Users_at_[hidden]
Sent: Thursday, November 14, 2002 3:07 PM
Subject: Re: [Boost-Users] Getting a matrix to the power of n
> Hi Scott,
>
> Thanks for the advice! It is a very small piece of code, so I am not
extremely concerned > about performance in that area. In reference to using
prod(A, A) in a loop, how would
> one do such a thing if the power was negative, as if we are looking for a
matrix to the
> power of -1, -2, or -3? Thanks again!
The case -1 is equivalent to solving a system of linear equations A X = Id.
There are a couple of well known methods (*not* part of uBLAS) to do this.
>From Scott:
> 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.
Agreed.
Best regards
Joerg
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