减少具有实数(非整数)系数的多项式的结果

时间:2011-11-05 19:20:58

标签: wolfram-mathematica reduce polynomial-math

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

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

但是当我在多项式中使用实数时,Reduce不起作用并且会出现此错误:

  

Reduce无法用不精确的系数求解系统。通过求解相应的精确系统并对结果进行数值化来获得答案。

有人可以帮忙吗?

enter image description here

1 个答案:

答案 0 :(得分:10)

Reduce::ratnz消息错误,但是有警告消息。如果您点击More链接或>>,系统上的任何展示,都会转到documentation,其中显示:

  

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

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