4

在 Mathematica 中,我尝试检查多项式的某些条件,其参数在一个范围内变化。我的计算是五阶的,但我做了一个简单的计算来显示我的需求。

当我创建一个以整数为参数的多项式时,我使用Reduce它,它给了我正确的答案。

但是当我在多项式中使用实数时,Reduce它不起作用并给出了这个错误:

Reduce 无法解决系数不精确的系统。答案是通过求解相应的精确系统并将结果数值化而获得的。

任何人都可以帮忙吗?

在此处输入图像描述

4

1 回答 1

10

Reduce::ratnz消息不是错误,而是警告消息。如果您单击More链接 或>>,无论系统上显示什么,它都会带您进入文档,其中显示:

Reduce当第一个参数包含不精确的数字时,通常会生成此消息。[...] 可以通过在输入中仅使用准确的数字来避免警告消息Reduce

现在,如果您对消息感到恼火,您可以使用关闭消息

Off[Reduce::ratnz]

这将关闭所有进一步使用的警告,Reduce或者您可以简单地使用

Quiet@Reduce[...]

如果您想避免该消息,那么正如文档所述,您必须使用确切的数字。一种方法是使用Rationalize. 例如:

x = 1.391 + 0.771 a;
Reduce[Rationalize[x] > 0 && 1 <= a <= 80, {a}]

Out[1]= 1 <= a <= 80

它会为您提供所需的输出,而不会发出警告。可能还有其他方法,具体取决于您在做什么,但是如果不知道您的确切表达方式就很难说。希望这有帮助。

于 2011-11-05T21:07:10.417 回答