[SciPy-User] scipy.sparse.linalg.bicg for Non Symmetric Matrix.
Fri Dec 10 06:51:13 CST 2010
Thu, 09 Dec 2010 21:12:28 -0430, Raul Acuña wrote:
> Am using the iterative methods of scipy.sparse.linalg for solving a
> linear system of equations Ax = b. My matrix A is non symmetric. I've
> been using the scipy.sparse.linalg.cg() function multiplying both matrix
> "A" and "b" with the transpose of A so the matrix will become symmetric:
> Asym = matrix(dot(A.T,A))
> bsym = matrix(dot(A.T,b))
> sol = cg(A,b,tol = 1e-10,maxiter=30)
> sol = bicg(A,b,tol = 1e-10,maxiter=30)
> raise ValueError('expected square matrix (shape=%s)' % shape)
The error is saying that your matrix is not a square matrix.
For a non-square matrix A, (A.T*A) is a square matrix, so that's why the
CG algorithm works. So it's not about symmetry of the matrix.
You should check that you have the same number of equations as unknowns.
Otherwise the solution either does not exists or is not unique.
More information about the SciPy-User