[petsc-users] Best way to compute the null space of a sparse maximum-rank rectangular matrix

Jose E. Roman jroman at dsic.upv.es
Sat Mar 8 16:11:23 CST 2014


El 08/03/2014, a las 20:42, Luca Argenti escribió:

> Dear all,
> 
>       I need to evaluate the null space Span{v_i} of a sparse rectangular matrix A \in C^{ N x (N+k)}, 
> 
>                    A v_i = 0,            (1)
> 
> where 
> 
> i) N is typically very big ( N ~ 500’000 ) and k, in comparison, is very small  ( k ~ 500 ).
> ii) The sub-matrix A_ij  i,j<= N is hermitian and non-singular. Equation (1), therefore, has exactly k solutions. 
> iii)The matrix is sparse, with a fill typically <= 3%, and its columns/rows can be reordered in such a way that 
>     a very large block, A_ij with i,j > n, & i,j<=N, n << N, is band-diagonal. 
> iv) A has a dominant diagonal. 
> v) For large values of i,j, the number of non-zero diagonals in the central band drop by about an order of magnitude.
> vi) Finally, this problem must be solved for several (thousands) closely-spaced values of an external parameter 
>      Q on which A depends continuously, A = A(Q). Most of the time, therefore, the null space at Q_{i+1} is arguably
>      very close to the null-space at Q_i .
> 
> My feeling is that this problem is very well defined, and that a parallel sparse iterative method should be
> able to solve it with no issues or unnecessary operations. Yet, probably because I am not an expert 
> of either PETSc or SLEPc, the two libraries I have considered so far, all the possible solutions that I found 
> seem to provide much more information than needed (thus, consuming much more resources than
> warranted). For example: is it really necessary to make a sparse LU factorization for the *whole* matrix? 
> In practice, one is looking for the null eigenspace of  A^h A. However, SLEPc suggests that this operation is 
> much more expensive than for a sparse A matrix alone (is it so? Shouldn’t Lanczos be implementable at just 
> twice the cost?), or maybe I misinterpreted the user guide.
> 
> Your suggestions will be greatly appreciated. Thank you so much for your help!
> 
> Cheers,
> 
>       Luca
> 

The nullspace of A^h A is equal to the right singular space of A corresponding to the zero singular value. It should be possible to compute this with SLEPc's SVD. Computing a large number of zeros may be problematic, so I cannot say in advance if the method will succeed. If you can generate a small matrix with these properties, send it to my personal address (not the list) and I will give it a try.

Jose



More information about the petsc-users mailing list