Указание дополнительной информации в Mathematica для упрощения выражений - PullRequest
3 голосов
/ 17 марта 2012

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

Integrate[Sign[x], {x, -l/2, l}]

оценивается как

ConditionalExpression[
 1/2 l (-3 + 6 DiscreteDelta[l] + 2 HeavisideTheta[-l] + 
 4 HeavisideTheta[l]), l \[Element] Reals]

Но если я знаю, что l - реальное положительное число, я на самом деле смотрю на -l / 2. Есть ли способ указать эту дополнительную информацию или ограничение, чтобы Mathematica могла упростить выражение?

Ответы [ 2 ]

4 голосов
/ 18 марта 2012

Обычно он будет оцениваться быстрее, если указать Assumptions внутри Integrate:

Integrate[Sign[x], {x, -l/2, l}, Assumptions -> l > 0]
3 голосов
/ 17 марта 2012

Я нашел ответ, вы можете указать предположения, такие как

Simplify[Integrate[Sign[x], {x, -l/2, l}], l > 0]

, который уменьшается до l/2.

...