5

我需要找到复数实部为负的条件。我认为 Reduce 非常适合这个,但它提供了冗余输出(即使在简化之后)。例如:

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)  

由于 a 和 b 被假定为实数,因为它们出现在不等式中,因此不需要进一步假设 a 和 b 之间的关系,我期望的结果是:

Out[543]: a > 0 && b > 0  

是否有充分的理由为什么没有获得?(在我看来)多余的结果会为更复杂的表达式累积,我需要减少其中的一些。有没有获得预期结果的技巧?我尝试选择 Reals 作为域并且根本不选择域,但没有什么能真正满足我的需求。顺便说一句,我正在通过检查特征值来分析固定点的稳定性……这是一项非常常见的任务。

4

2 回答 2

4

我不知道为什么 Mathematica 不会一步返回您期望的结果,但这里是如何分两步获得它:

数学图形

通常,可以以一般方式处理不等式的两个函数是ReduceLogicalExpand。(但我在这方面的知识非常有限!)我相信(Full)Simplify只会使用后者。


关于在中设置域的评论Reduce

请注意,文档中说:“如果 dom 是实数,或者是整数或有理数等子集,那么所有常量和函数值也被限制为实数。” 因此,如果您要Reals像@belisarius 的答案那样指定域,则Reduce返回这也是真实所0 < b <= a必需的。Sqrt[a-b]

于 2012-01-08T19:05:21.737 回答
2

用包裹Re[...]表达式,ComplexExpand您将得到预期的结果a > 0 && b > 0

于 2012-01-08T22:35:32.697 回答