Подтвердить что ты не робот

Правильный способ упростить интегральный результат в Mathematica с заданными целыми ограничениями

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

Integrate[ Cos[ (Pi * x)/2 ]^2 * Cos[ (3*Pi*x)/2 ]^2, {x, -1, 1}]

Однако, пытаясь сделать более общий интеграл:

FullSimplify[
    Integrate[Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/2], 
              {x, -1, 1}], 
    Element[{m, n}, Integers]]

дает нуль, что определенно неверно для m = n = 1

Я ожидаю условное выражение. Можно ли "рассказать" математику о моих ограничениях на m и n до того, как интеграл будет оценен так, чтобы он правильно обрабатывал специальные случаи?

4b9b3361

Ответ 1

Пока я опаздываю на вечеринку, пока никто не дал полного решения.

Иногда, когда вы интегрируете, лучше понять подынтегральную функцию. Рассмотрим,

ef = TrigReduce[
    Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/2]]/.
  Cos[a_] :> Cos[ Simplify[a, Element[{m,n}, Integers] ] ]

который возвращает

(2 Cos[(m - n) Pi x] + Cos[(1 + m - n) Pi x] + Cos[(1 - m + n) Pi x] + 
 Cos[(m + n) Pi x] + 2 Cos[(1 + m + n) Pi x] + Cos[(2 + m + n) Pi x] )/8

где каждый член имеет вид Cos[q Pi x] с интегралом q. Теперь при объединении Cos[q Pi x] от -1 до 1 (где q является целым) рассмотрим два случая: q == 0 и q != 0.

Случай q = 0. Это особый случай, когда Mathematica пропускает общий результат, так как подразумевает постоянный подынтеграл. (Я часто пропущу его, также, когда делаю это вручную, поэтому Mathematica не полностью виновата.) Итак, интеграл в этом случае равен 2.

Строго говоря, это неверно. Когда сказано интегрировать Cos[ q Pi x ] над -1 < x < 1, Mathematica возвращает

2 Sin[ Pi q ]/( Pi q )

который равен 0, за исключением случаев, когда q == 0. В этот момент функция undefined в строгом смысле, но Limit[Sin[x]/x, q -> 0] == 1. Поскольку особенность в q == 0 removable, интеграл 2, когда q -> 0. Итак, Mathematica не пропустит его, это просто форма, которая не сразу распознается.

Случай q != 0. Поскольку Cos[Pi x] является периодическим с периодом 2, интеграл от Cos[q Pi x] от x == -1 до x == 1 всегда будет превышать периоды q. Другими словами,

Integrate[ Cos[q Pi x], {x, -1, 1}, 
  Assumptions -> (Element[ q, Integers ] && q != 0) ] == 0

Взятый вместе, это означает

Integrate[ Cos[q Pi x], {x, -1, 1}, Assumptions -> Element[ q, Integers ] ] == 
Piecewise[{{ q == 0, 2 }, { 0, q!=0 }}]

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

intef = ef /. Cos[q_ Pi x] :> Piecewise[{{2, q == 0}, {0, q != 0}}] // 
 PiecewiseExpand 

которая допускает нецелые решения. Чтобы очистить это, нам нужно уменьшить условия только до тех, которые имеют интегральные решения, и мы могли бы также упростить по мере продвижения:

(Piecewise[{#1, 
    LogicalExpand[Reduce[#2 , {m, n}, Integers]] // 
     Simplify[#] &} & @@@ #1, #2] & @@ intef) /. C[1] -> m

\BEGIN {Edit}

Чтобы ограничить путаницу, внутренне Piecewise имеет структуру

{ { { value, condition } .. }, default }

При использовании Apply (@@) список условий является первым параметром, а по умолчанию вторым. Чтобы обработать это, мне нужно упростить условие для каждого значения, поэтому я использую вторую короткую форму Apply (@@@) в списке условий, поэтому что для каждой пары value-condition я получаю

{ value, simplified condition }

В процессе упрощения используется Reduce, чтобы ограничить условия целыми числами, LogicalExpand, чтобы устранить избыточность, и Simplify, чтобы ограничить количество терминов. Reduce внутренне использует произвольную константу, C[1], которую он устанавливает как C[1] == m, поэтому мы устанавливаем C[1] обратно на m для завершения упрощения

\конец {Edit}

который дает

Piecewise[{
 {3/4, (1 + n == 0 || n == 0) && (1 + m == 0 || m == 0)},
 {1/2, Element[m, Integers] && 
       (n == m || (1 + m + n == 0 && (m <= -2 || m >= 1)))},
 {1/4, (n == 1 + m || (1 + n == m && (m <= -1 || m >= 1)) || 
       (m + n == 0 && (m >= 1 || m <= 0)) || 
       (2 + m + n == 0 && (m <= -1 || m >= 0))) && 
       Element[m, Integers]},
 {0, True}
}

как полное решение.

Другое Редактирование. Я должен отметить, что и случаи 1/2, и 1/4 включают значения для m и n в случае 3/4. Похоже, что случай 3/4 может быть пересечением двух других и, следовательно, их суммой. (Я не сделал вывод, но я сильно подозреваю, что это правда.) Piecewise оценивает условия в порядке (я думаю), поэтому нет никаких шансов получить это неверное.

Изменить, снова. Упрощение объекта Piecewise не так эффективно, как могло бы быть. Речь идет о размещении правила замены C[1] -> m. Это происходит в конце процесса Simplify, чтобы использовать его. Но, если он введен внутри LogicalExpand, и предположения добавляются в Simplify

(Piecewise[{#1, 
    LogicalExpand[Reduce[#2 , {m, n}, Integers] /. C[1] -> m] // 
     Simplify[#, {m, n} \[Element] Integers] &} & @@@ #1, #2] & @@ intef)

то более чистый результат дает

Piecewise[{
 {3/4, -2 < m < 1 && -2 < n < 1}, 
 {1/2, (1 + m + n == 0 && (m >= 1 || m <= -2)) || m == n}, 
 {1/4, 2 + m + n == 0 || (m == 1 + n && m != 0) || m + n == 0 || 1 + m == n},
 {0, True}
}]

Ответ 2

Не всегда ноль...

k = Integrate[
         Cos[(Pi x)/2]^2 Cos[((2 (n) + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/ 2], 
         {x, -1, 1}, Assumptions -> Element[{m, n}, Integers]];

(*Let find the zeroes of the denominator *)

d = Denominator[k];
s = Solve[d == 0, {m, n}]

(*The above integral is indeterminate at those zeroes, so let compute 
  the integral again there (a Limit[] could also do the work) *)

denZ = Integrate[
          Cos[(Pi x)/2]^2 Cos[((2 (n) + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/ 2] /.s, 
          {x, -1, 1}, Assumptions -> Element[{m, n}, Integers]];

(* All possible results are generated with m=1 *)

denZ /. m -> 1

(*
{1/4, 1/2, 1/4, 1/4, 1/2, 1/4}
*)

Визуализация этих случаев:

Plot[Cos[(Pi x)/2]^2 Cos[((2 (n) + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/2] 
     /. s /. m -> 1, {x, -1, 1}]

enter image description here

Сравните с интегралом с нулевым результатом:

Plot[Cos[(Pi x)/2]^2 Cos[((2 (n) + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/ 2] 
     /. {m -> 1, n -> 4}, {x, -1, 1}]

enter image description here

Ответ 3

Если вы просто отбрасываете целую часть FullSimplify, математика делает интеграцию аккуратно для вас.

Integrate[
 Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/
    2], {x, -1, 1}]

enter image description here

Чтобы включить условие, что m и n являются целыми числами, лучше использовать опцию Assumptions в Integrate.

Integrate[
 Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/
    2], {x, -1, 1}, Assumptions -> Element[{m, n}, Integers]]

enter image description here

Ответ 4

Позволяет использовать некоторые завершающие условия для двух целых чисел m=n||m!=n.

Assuming[{(n \[Element] Integers && m \[Element] Integers && m == n)},
Integrate[Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/2],
{x, -1, 1}]]

Ответ на этот случай - 1/2. В другом случае это

Assuming[{(n \[Element] Integers && m \[Element] Integers && m != n)},
Integrate[
Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/
 2], {x, -1, 1}]]

и ответ 0.

Однако я удивлен, увидев, что если мы добавим эти два условия как "одно или другое", Mathematica возвращает один ноль после интеграции. Я имею в виду, что в случае следующего я получаю только ноль, но не `` 1/2 || 0`.

Assuming[{(n \[Element] Integers && m \[Element] Integers && 
 m == n) || (n \[Element] Integers && m \[Element] Integers && 
 m != n)}, 
Integrate[
Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/
 2], {x, -1, 1}]]

Кстати, мы можем видеть только условия, когда этот интеграл становится Indeterminate.

res = Integrate[
Cos[(Pi x)/2]^2 Cos[((2 n + 1) Pi x)/2] Cos[((2 m + 1) Pi x)/
  2], {x, -1, 1}] // Simplify

Выход здесь.

enter image description here

Теперь давайте посмотрим, все отношения m и n могут сделать ошибку Integral bad!

BadPart = (res*4 Pi);
[email protected](Solve[(Denominator[#] == 0), m] & /@ 
 Table[BadPart[[i]], {i, 1, [email protected]}] /. 
Rule -> Equal) // TableForm

enter image description here

Итак, это особые случаи, которые, как упоминал Сджерд, имеют бесконечные экземпляры.

BR