# Solve equations real and imaginary part separately

For my system of equations, the procedure described in Solving complex equations of using Reduce works no more. How can I separate the real and imaginary part of the equations? Because then I could use Solve[equations, vars, Reals]. Nevertheless I hope for a simpler way to overcome this issue.

Example

Vector = {v1, v2, v3, v4};
Matrix = {{c11, c12, c13, c14},
{c21, c22, c23, c24},
{c31, c32, c33, c34},
{c41, c42, c43, c44}};
Reduce[Table[0 == Sum[Matrix[[r, k]] Vector[[k]], {k, 4}], {r, 4}] &&
Element[{v1Real, v1Complex, v2Real, v2Complex, v3Real, v3Complex, v4Real, v4Complex}, Reals],
{v1Real, v1Complex, v2Real, v2Complex, v3Real, v3Complex, v4Real, v4Complex}] /.
{v1 -> v1Real + I v1Complex, v2 -> v2Real + I v2Complex, v3 -> v3Real + I v3Complex, v4 -> v4Real + I v4Complex}

• We could likely provide something more useful to you if on;y you'd explicitly mention what your "system of equations" are. Commented May 2, 2013 at 12:05
• The way you defined the equations you can only expect trivial solutions. Try to check eq = (# == 0) & /@ (matrix . vector);Solve[eq, vector, Complexes]. Also be careful with the fact that initiating symbols with capital letters are avoided in Mathematica. Commented May 2, 2013 at 12:41
• I want to introduce some symmetry properties into the vector as in my case the vector represents the density matrix, i.e. Complexes is no intuitive option! Commented May 2, 2013 at 14:10
• It's a linear system. You can use LinearSolve. Then, if you must, separate the symbolic solution into real and imaginary parts using Re and Im. Commented May 2, 2013 at 14:44

It's a linear system. You can use LinearSolve. Then, if you must, separate the symbolic solution into real and imaginary parts using Re and Im.
• I am not looking for credit; I only posted this to get the question off the unanswered list, and the answer is already marked as "community wiki", which means no points accrue to the poster. Is it really helpful for you if I add "Through@{Re, Im}@LinearSolve[Matrix, Vector]" to the above or was the comment clear enough already? I think probably the latter. Commented Sep 27, 2015 at 16:36
• @strpeter good--glad to hear that it is a useful answer. To write it out without using @, we have Through[{Re, Im}[LinearSolve[Matrix, Vector]]]. The @ is right-associative and simply takes the place of the function application brackets. I usually write Through this way as I find it easier to read than the infix form. Commented Sep 27, 2015 at 17:46