Boost logo

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