在Mathematica中,我试图检查多项式的某些条件,其参数在一个范围内变化。我的计算是五阶,但我做了一个简单的计算以显示我的需求。
当我创建一个以整数作为参数的多项式时,我使用Reduce
它给了我正确答案。
但是当我在多项式中使用实数时,Reduce
不起作用并且会出现此错误:
Reduce无法用不精确的系数求解系统。通过求解相应的精确系统并对结果进行数值化来获得答案。
有人可以帮忙吗?
答案 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
它可以为您提供所需的输出,而不会发出警告。可能还有其他方式取决于您正在做什么,但如果不知道您的确切表达,很难说。希望这有帮助。