Рішучість перевірки антидеривативу?


9

Припустимо, у мене є дві функції і і мені цікаво визначити, чи єFG

F(x)=G(x)dx.

Припустимо, що мої функції складаються з елементарних функцій (многочленів, експоненціалів, журналів і тригонометричних функцій), але не, скажімо, з ряду Тейлора.

Чи вирішується ця проблема? Якщо ні, то це напіввідкладно?

(Я запитую, тому що я викладаю клас з обчислюваності, і студент запитав мене, чи може TM допомогти вам інтегрувати функцію, інтеграл якої наразі не був відомий. Я підозрюю, що функцій, яких ми не знаємо, як інтегрувати, більше належним чином функції, інтеграл яких не може бути виражений комбінацією вищезазначених елементарних функцій, а не функцій, про які ми насправді не знаємо інтеграла, але це змусило мене замислитись над тим, чи можна вирішити загальну проблему перевірки інтегралів.)


Ви ніби запитуєте про символічну диференціацію. Ви можете подивитися на en.wikipedia.org/wiki/Symbolic_computation та en.wikipedia.org/wiki/Computer_algebra_system . Мені не ясно, який клас функцій ви дозволяєте. Яку композицію ви дозволяєте? наприклад, чи дозволено ? Я пропоную вам спробувати формалізувати клас функцій, які вам цікаві, використовуючи рекурсивне визначення. Ви спробували побачити, що відбувається при використанні правила ланцюга, і побачите, чи можете ви отримати рекурсивний алгоритм, який обробляє всі випадки? F(x)=sin(cos(ex))+log(2x3+3)
DW

3
Оскільки диференціація проста, ви справді запитуєте, чи можемо ми вирішити, чи вираз однаково нульовий. Це, мабуть, проблема, про яку інформацію легше знайти. F
Yuval Filmus

Відповіді:


8

Коротка відповідь на ваше запитання - «ні». Теорема Річардсона та його більш пізні розширення в основному стверджують, що як тільки ви включаєте елементарні тригонометричні функції, проблема вирішення, якщо (а отже, якщо , оскільки це те саме, що ) нерозв'язна.f(x)=0f(x)=g(x)f(x)g(x)=0

Що цікавого в цьому полягає в тому, що теорія першого порядку реальних закритих полів рішуча. Інтуїтивно зрозуміло, що додавання тригонометричних функцій робить систему першого порядку нерозбірливою, тому що ви можете побудувати цілі числа за допомогою , а теорія цілих чисел не визначна .{xR:sin(πx)=0}

Незалежно від того, чи можна вирішити теорію реальних закритих полів з , досить відома відкрита проблема .ex

Ще цікавіше те, що якщо у вас був оракул, який "вирішив" постійну проблему (тобто оракул, який може сказати вам, якщо чи ні), то інтеграція елементарних функцій у кінцевих термінах вирішується , і відомий практичний алгоритм. Отже, задавши , ми могли б знайти або знати, що елементарний інтеграл у кінцевих умовах не існує.f(x)=0G(x)F(x)G


6

Здається, ваша проблема зменшує таке простіше питання:

Враховуючи дві функції у класі функцій, чи маємо для всіх ? (Іншими словами, чи мають вони всюди однакове значення?)F,GF(x)=G(x)x

Я не знаю, чи можна це вирішити для цього класу функцій. Якщо це так, то і ваша проблема повинна бути вирішена.


Для вашої проблеми загальним підходом є: символічно диференціювати щоб отримати , а потім перевірити, чи маємо для всіх .F(x)F(x)F(x)=G(x)x

Тож ключовим кроком є ​​символічна диференціація. Давайте розберемося, як це зробити більш детально. Ми можемо визначити клас допустимих функцій рекурсивно:

F(x)::=c|x|ex|log(x)|sin(x)|cos(x)|tan(x)|F1(x)+F2(x)|F1(x)×F2(x)|F1(x)/F2(x)|F1(F2(x))

де діапазон констант і діапазон функцій.cF,F1,F2

Тоді можна розробити рекурсивний алгоритм символічної диференціації цього класу функцій, використовуючи стандартні правила обчислення (наприклад, правило ланцюга тощо). Зокрема, ми можемо обробляти кожен випадок вище та рекурсивно показувати, що похідна може виражатися символічно як функція в межах цього класу. Наприклад:

  • Якщо , .F(x)=cF(x)=0

  • Якщо , .F(x)=xF(x)=1

  • Якщо , .F(x)=exF(x)=ex

  • Якщо , .F(x)=log(x)F(x)=1/x

  • Якщо , .F(x)=sin(x)F(x)=cos(x)

  • Якщо , .F(x)=tan(x)F(x)=1+(tan(x))2

  • Якщо , .F(x)=F1(x)+F2(x)F(x)=F1(x)+F2(x)

  • Якщо , .F(x)=F1(x)×F2(x)F(x)=F1(x)F2(x)+F1(x)F2(x)

  • Якщо , (правило ланцюга).F(x)=F1(F2(x))F(x)=F1(F2(x))F2(x)

І так далі. У кожному випадку, якщо входить до класу допустимих функцій, тоді це так само , і ви можете рекурсивно опрацювати символьний вираз для - це називається символічною диференціацією .F(x)F(x)F(x)

Нарешті, залишається лише перевірити, чи для всіх . Це проблема, про яку я згадую у верхній частині своєї відповіді.F(x)=G(x)x


Існує простий метод перевірити, чи однакові дві функції однакові, які, як я очікував, спрацюють на практиці. Алгоритм такий: кілька разів вибирайте випадкове значення і перевіряйте, чи має значення для цього значення . Якщо це дорівнює рівності для багатьох випадково вибраних , то виведіть "вони однаково рівні". Якщо ви знайдете будь-який для якого , то виведіть "вони різні".xF(x)=G(x)xxxF(x)G(x)

Немає гарантії, що це спрацює, але для багатьох класів функцій вихід цієї процедури буде правильним з високою ймовірністю. Зокрема, припустимо, у нас є деякий розподіл на представлений випадковою змінною а деякий таким, що виконується для всіх у класі. Припустимо, крім того, що клас допустимих функцій закривається на віднімання (як у вашому класі). Тоді випливає, що раундів вищевказаної процедури дає неправильну відповідь з максимальною вірогідністю .xXϵ>0Pr[F(X)=0]ϵFr(1ϵ)r

Крім того, якщо існує рандомізована процедура тестування рівності поліномів, то проблема вирішується.

Залишається запитати, чи відповідає такий результат вашому конкретному класу функцій. Наведене вище твердження, ймовірно, не буде дотримано. Однак, якщо нам пощастить, можливо, нам вдасться довести щось подібне:

Для всіх , можливо, ми можемо знайти розподіл на дійсні числа, тобто випадкову змінну та константу , таку, що така, що утримується для всіх функцій які є у вашому класі та мають "розмір" не більше .sNXsϵs>0Pr[F(X)=0]Fs

Якщо це правда, то з цього випливає, що існує рандомізований алгоритм для тестування поліноміальної рівності, і, отже, ваша проблема вирішується.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.