Уменьшение результатов в ошибке для полинома с действительными (нецелыми) коэффициентами - PullRequest
4 голосов
/ 05 ноября 2011

В Mathematica я пытался проверить некоторые условия для полинома, параметры которого изменяются в диапазоне.Мои вычисления 5-го порядка, но я сделал простой, чтобы показать свои потребности.

Когда я создаю многочлен, в котором в качестве параметра используются целые числа, я использую Reduce, и он дает мне правильный ответ.1005 * Но когда я использую действительные числа в полиноме, Reduce не работает и выдает эту ошибку:

Реду не удалось решить систему с неточными коэффициентами.Ответ был получен путем решения соответствующей точной системы и числового результата.

Кто-нибудь может помочь?

enter image description here

1 Ответ

10 голосов
/ 06 ноября 2011

Сообщение Reduce::ratnz является не ошибкой, а предупреждением.Если вы нажмете на ссылку More или >>, что бы ни отображалось в вашей системе, вы перейдете к документации , в которой говорится:

Это сообщениечасто генерируется, когда первый аргумент в Reduce содержит неточные числа.[...] Предупреждающего сообщения можно избежать, используя только точные цифры на входе для Reduce

Теперь, если вы раздражены сообщением, вы можете отключить сообщение, используя

Off[Reduce::ratnz]

, который отключит предупреждение для all дальнейшего использования Reduce или вы можете просто отключить эту операцию, используя

Quiet@Reduce[...]

Если вы хотите избегайте сообщения, тогда, как сказано в документации, вам придется использовать точные цифры.Одним из способов является использование Rationalize.Например:

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

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

Дает желаемый результат без предупреждения.Могут быть и другие способы в зависимости от того, что именно вы делаете, но трудно сказать, не зная вашего точного выражения.Надеюсь, это помогло.

...