I have a matrix with several zero columns. Since this matrix is singular, I can not invert it with the routine methods. I want a method to solve this problem.
If the n'th column of your matrix is all zeros, then it means that the n'th independent variable in a system of equations does not play any role in determining the solution of the system of equations. So...simply remove all zero columns and insignificant variables from the system of equations. remove them because they have nothing to do with the solution of the system of equations.
If your matrix was a square matrix to begin with, however, then you will be left with a non-square matrix that has more rows than columns. In other words, the system of equations is over determined.
To invert a matrix that has more rows than columns (an over determined system of equations), use singular value decomposition (SVD). There are standard algorithms for applying SVD. You can also use least square methods, but I prefer SVD.
SVD also works nicely for under determined systems of equations, when you have more columns than rows, in which case the solution of a system of equations is not unique. But I suspect that this is not your situation.
There are SVD routines that work on matrices of complex numbers (with real and imaginary parts).
As I think of it, I have not tried SVD on matrices with zero columns left in the matrix. SVD may also work if you leave the zero columns in the matrix. I am unsure. I would remove the columns, and the corresponding independent variables, however, because the matrix is telling you that those independent variables play no role in determining the solution of the system of equations..
Ronald has pretty much covered the key ideas that can help you solve your problem. I have attached some notes describing the least squares solution and the pseudo Inverse that allow you to solve underdetermined and overdetermined systems of linear equations. Topics that are covered in these notes are:
(i) Rank of a matrix
(ii) Range and null-space of a matrix
(iii) Eigenvalues and eigenvectors of a matrix
(iv) Singular value decomposition (SVD) of a matrix
(v) Least squares solution of a system of equations
(vi) Pseudo-inverse of a matrix
All the calculations are done in Mathematica, but equivalent computations can be done in MatLab. Hope this helps.
if it couldn't solve your problem try cholesky or LU decompositions.they will surely work because their bases are gauss jordan factorisation.there are more better ways depend on how you form your matrix .can you give more information about the way it's carried out?maybe by some method you could make it blocked matrix and the problem becomes solved easily.