From: Fergus G. <fe...@go...> - 2009-11-17 18:25:05
|
On Tue, Nov 17, 2009 at 01:09:24PM -0500, Dominique Orban wrote: Thanks for the reply > > If you really need A*A^T explicitly, I suggest building A^T and then using > dot(). > I think we do. Our matrices are ~ 10 Million square, so A^T not cheap doing it either explictly as A[i,j]=A[j,i] (ouch) or as A^T = spmatrix.dot(A,I) > Often you don't need this matrix explicitly though (e.g., it is easy > to build matrix-vector products with A*A^T without assembling this matrix). > Similarly, if you need to factorize it to solve A*A^T x = b, you can solve > the equivalent system > > [ I A^T ] [x] [ 0] > [ A 0 ] [y] = [-b] > > This last system is also much sparser, and it is symmetric. It is indefinite > though. Our application is more statistical (correlation) - we're not trying to solve/invert. Regards. -- Fergus Gallagher "I take my children everywhere, but they always find their way back home." - Robert Orben |