【发布时间】:2011-12-11 11:27:59
【问题描述】:
我需要在给定几个假设(也是不等式)的情况下证明不等式(或找到反例)。不幸的是,要证明的不等式是一个相当长且复杂的表达式。大约有 15 个变量,FullSimplify 的输出填满了好几张 A4 纸。对于变量较少的示例,FindInstance 有助于找到反例或在不等式为真时给出 {} 的结果。我也尝试过以这种方式使用Reduce:
Reduce[
Implies[
assumtion1 && assumtion2,
inequality
],
Reals
]
对于简单的示例,如果不等式成立,则输出“True”。但在我的情况下,经过几个小时的运行时间后,Mathematica 需要 5-6 GB 的 RAM(和交换),所以我不得不中止这个过程。
我可以用 Mathematica 做些什么来提高性能?
【问题讨论】:
-
您所做的是量词消除的子集,请参阅mathworld.wolfram.com/QuantifierElimination.html,这在最坏的情况下具有双倍的指数复杂性......
-
这两个假设的形式是什么?
-
嗯,有两个以上的假设。这些假设也是不等式的,准确地说,我有 32 个。我必须证明的所有不等式和不等式都包含 28 个不同的变量。我想@Paxinum 已经给出了正确的答案,为什么不可能以这种方式解决它。我希望有某种不同的解决方案,但我没有想法。对于如何继续研究它的任何鼓舞人心的提示,我也会很高兴...... :) 我能做些什么来解决这个问题,或者如果我尝试找到一种变量更少的不同方法会更好吗?跨度>
-
您可以尝试将含义转换为
!P \[Or] Q形式。我不知道它是否会有所帮助,但它可能会。 -
将我上面所说的与
LogicalExpand结合起来,并可能与Simplify结合起来。那时,您可能能够将您的不等式分离为不重叠的子集。大多数情况下,这只是一个猜测,但它有worked for me in the past。
标签: wolfram-mathematica inequality inequalities