【问题标题】:Performance problems: Solving an inequality with several assumptions in Mathematica性能问题:使用 Mathematica 中的几个假设解决不等式
【发布时间】: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


【解决方案1】:

你会发现一篇非常不错的关于 Mma CAD 算法的论文here

Mma 使用的圆柱代数分解 (CAD) 在变量数量上以双指数行为进行缩放。

较新的方法在量词交替的数量上是双指数的。

我认为您只使用 Mma 内部引擎不会有运气,但您可以根据问题的对称性(如果有)推出自己的引擎

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多