# Methods for calculating the symmetric part of a matrix

I am using a multigrid preconditioned GMRES method for a nonsymmetric matrix. The matrix is the discretisation of the derivative of a nonlinear operator. Since multigrid is not the best for nonsymmetric problems I am preconditioning the 'symmetric part' of the matrix, where I am taking the symmetric part of matrix $A$ to be $(A + A^{\text{T}})/2$, where $A^{\text{T}}$ is the transpose of $A$.

My problem is that the 'symmetric part' of the matrix that I get is not positive definite. I was wondering if there is a way to get a symmetric positive definite part of a matrix which is just some manipulation of the original matrix, i.e.

$\tilde{A} = F(A)$

for $F$ some function of $A$

EDIT: From the comments and answers below I realise that I have not included a large part of the important information required for my question, so here is some supplementary information. I am using a standard geometric multigrid implementation with a pointwise Jacobi / Gauss-Seidel smoother. I am aware that using a smoothing operator that is tailored to the specific operator that I am dealing with will give better results, but I am assessing the effectiveness of the standard linear geometric multigrid implementation for some problems I am interested in. As such I ideally want to be applying the multigrid iteration to a symmetric positive definite matrix. I have information about the linear operator that I can use to get a matrix to precondition which is symmetric positive definite and 'close to' the matrix I am interested in inverting, which works quite well. What I am particularly interested in, though, is knowing if there is some 'black box' function which can give a symmetric positive definite matrix for the preconditioning that will be 'good' for a given matrix, without having knowledge of where the given matrix came from

## migrated from cs.stackexchange.comFeb 18 '14 at 17:49

This question came from our site for students, researchers and practitioners of computer science.

• This looks like it might be more appropriate for Computational Science. Keeran, if you agree, click the flag link below your question and ask the moderators to migrate it. – David Richerby Feb 18 '14 at 15:21
• I think it's ontopic on either site, so I'd prefer to let the question sit here for a week or so. If it has no answer then, you can repost it. – Raphael Feb 18 '14 at 16:35
• I am not sure about what I am going to say, but if you say that multigrid is not the best for non-symmetric systems, why not preconditioning the non-symmetric part $(A-A^T)/2$? – sebas Feb 18 '14 at 23:16
• Where does this matrix come from? I gather you're using geometric multigrid, not algebraic multigrid? – Geoff Oxberry Feb 19 '14 at 9:56
• @GeoffOxberry I am using geometric multigrid. The matrix is the discretisation of the linearisation of a nonlinear operator. I know that there is a symmetric positive definite (spd) part of the linear operator. Using the symmetrisation technique described above the 'symmetric' part of the matrix I get is not positive definite, though, so geometric multigrid is not as effective as in the spd case. For the example I am working with I could just discretise the spd part of the operator, but I want a general way to get a spd part of a matrix to see how effective it is for preconditioning – Keeran Brabazon Feb 19 '14 at 10:11

Furthermore, if I understand you right, you want to apply the multigrid preconditioner to a matrix $f(A)$ and use this to precondition the solution of a linear system involving the matrix $A$. This will in general only bring any reduction in iteration counts if $f(A)$ and $A$ are in fact closely related. Just because you can find a function $f$ that maps any matrix $A$ to a symmetric and positive matrix $f(A)$ and for which you have a multigrid implementation does not mean that this is then automatically a good preconditioner for $A$.
• I think the black box you are looking for doesn't exist. I can define many ways to construct an SPD matrix out of a general matrix $A$, for example $f(A)=A^TA+I$. But without defining what a "good" approximation is, that's meaningless. If you're looking for something that will make for a good preconditioner, I do not believe that it exists in general. Preconditioners need to reflect the eigenvalues of the original matrix, and you will not find any "simple" transformation that can do that. – Wolfgang Bangerth Feb 20 '14 at 2:32