Можете ли вы объяснить это поведение Mathematica $ Assumptions? - PullRequest
10 голосов
/ 02 декабря 2011

Рассмотрим следующие три строки кода Mathematica и обратите внимание, что строки ввода 1 и 3 абсолютно одинаковы (это самый маленький фрагмент кода, который я обнаружил для демонстрации такого поведения).

>> Integrate[Exp[-a^2] Sin[2 p] ((a^2 + b^2) + b*Cos[p] + a*Sin[p]), {p, 0, 2 \[Pi]}]
0

>> $Assumptions = {t > 0};
>> Integrate[Exp[-a^2] Sin[2 p] ((a^2 + b^2) + b*Cos[p] + a*Sin[p]), {p, 0, 2 \[Pi]}]

8/3 Sqrt[a^2+b^2] E^-a^2

Обратите внимание, что интеграл должен давать 0, как в первом ответе Mathematica. Предположение, которое я ввожу, очевидно, не имеет ничего общего с интеграцией. Это ошибка (я использую Mathematica 8.0)?

Даже более странно, если я разделю интеграл на сумму 2 или 3 интегралов, каждый из них выдает 0. То же самое, если я вычленя из интеграла части, которые не зависят от p.

Для меня это похоже на ошибку, но если что-то мне не хватает, пожалуйста, дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

В Mathematica 7.0.1 результат равен 0, а в 8.0.4 мы получаем

8/3 Sqrt[a^2+b^2] E^-a^2

Таким образом, это должна быть ошибка, еще хуже - ошибка. К счастью, можно легко проверить результат без компьютера, но в случае более сложного интеграла это будет серьезной проблемой.

1 голос
/ 04 января 2013

Это, похоже, было решено.В версии 9.0 оба дают результаты 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...