I need to find the conditions for the real part of a complex number to be negative. I thought Reduce would be perfect for this, but it gives redundant output (even after simplification). For example:
In[543]: Reduce[{Re[-1 - Sqrt[a - b] ] < 0, a > 0, b > 0}, {a, b}, Complexes]
Out[543]: a > 0 && (0 < b < a || b >= a)
As a and b are assumed to be real because they appear in an inequality, there needs to be no further assumption about the relation between a and b, the result I expect is:
Out[543]: a > 0 && b > 0
is there a good reason why that is not obtained? The (in my eyes) redundant results accumulate for more complex expressions and I need to reduce quite a few of them. Is there a trick to get the expected result? I played around with choosing Reals as the domain and choosing no Domain at all, but nothing really gives me what I want. By the way I am analyzing the stability of fixed points by checking eigenvalues...a very common task.
I don't know why Mathematica won't return the result you are expecting in one step, but here's how to obtain it in two steps:
Generally, the two functions that can deal with inequalities in a general way are Reduce
and LogicalExpand
. (But my knowledge is very limited in this area!) I believe (Full)Simplify
will only use the latter one.
A comment on setting domains in Reduce
:
Note that the documentation says: "If dom is Reals, or a subset such as Integers or Rationals, then all constants and function values are also restricted to be real." Hence if you were to specify the domain as Reals
as in @belisarius's answer, Reduce
would return 0 < b <= a
which is necessary for Sqrt[a-b]
to be real as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With