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

tra*_*nte 4 reduce wolfram-mathematica polynomial-math

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

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

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

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

有人可以帮忙吗?

在此输入图像描述

abc*_*bcd 10

Reduce::ratnz消息不是错误,而是警告消息.如果您单击More链接或>>系统上的任何显示,它将转到文档,其中说:

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

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

Off[Reduce::ratnz]
Run Code Online (Sandbox Code Playgroud)

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

Quiet@Reduce[...]
Run Code Online (Sandbox Code Playgroud)

如果你想避免这个消息,那么正如文档所说,你将不得不使用确切的数字.一种方法是使用Rationalize.例如:

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

Out[1]= 1 <= a <= 80
Run Code Online (Sandbox Code Playgroud)

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