Using Solve

However, Solve[a + I b == zr + I zi && (a | b | zr | zi) \[Element] Reals, zi, Complexes] returns {} which means that there are no solutions. Why does this happen? zi has a real value only if a == zr, so in general (for arbitrary a, zr values) there is no real solution for zi. The main difference between Reduce and Solve is that Reduce will try to generate those specific conditions under which a solution exists while Solve does not.

I could imagine though that Solve or Reduce make internal use of some function that does take $Assumptions into account. I do not know if this is the case or not, but I doubt that generally $Assumptions would have an effect on them.

Not all functions with Assumtion Option do have the default Assumptions->$Assumptions. AFAIK the only one which doesn't is PowerExpand with default Assumptions->True. So Assuming works only for Functions having the default option Assumptions->$Assumptions.
–
Peter BreitfeldMay 8 '12 at 9:51

1

@PeterBreitfeld Thanks for pointing that out! I checked the docs and they say: "You can specify default assumptions for PowerExpand using Assuming." It doesn't work though unless I use Assumptions -> $Assumptions.
–
SzabolcsMay 8 '12 at 11:11

1

I think WRI has thougt about the Assumptions option of PowerExoand. I wrote the default were True, but it is Automatic. Look what Power[(a b)^n,Assumptions->#]&/@{Automatic,True} does. $Assumptions defaults to True, so Assumptions->$Assumptions is not appropriate for PowerExpand
–
Peter BreitfeldMay 8 '12 at 11:26

Well, here's a more complicated variant for the case then all parameters are real.
In particular for a and b from your example. Constants in the equation should not be floating point numbers and E. If you need E in equaion it could be changed to some other not used transcendent constant like EulerGamma. Floating point numbers can be included with Rationalize.

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.