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