Decidibilità del controllo di un antiderivativo?


9

Supponiamo di avere due funzioni F e G e sono interessato a determinare se

F(x)=G(x)dx.

Supponiamo che le mie funzioni siano composte da funzioni elementari (polinomi, esponenziali, registri e funzioni trigonometriche), ma non, diciamo, serie di Taylor.

Questo problema è risolvibile? In caso contrario, è semidecidibile?

(Lo sto chiedendo perché sto insegnando un corso sulla calcolabilità e uno studente mi ha chiesto se una TM potesse aiutarti a integrare una funzione il cui integrale non era attualmente noto. Sospetto che le funzioni che non sappiamo integrare siano più funzioni correttamente il cui integrale non può essere espresso come una combinazione delle funzioni elementari di cui sopra piuttosto che funzioni per le quali non conosciamo effettivamente l'integrale, ma questo mi ha fatto pensare se il problema generale del controllo degli integrali fosse decidibile.)


Sembra che tu stia chiedendo una differenziazione simbolica. Si potrebbe dare un'occhiata a en.wikipedia.org/wiki/Symbolic_computation e en.wikipedia.org/wiki/Computer_algebra_system . Non mi è chiaro quale classe di funzioni consentite. Che tipo di composizione permetti? ad esempio, è F(x)=sin(cos(ex))+log(2x3+3)permesso? Ti suggerisco di provare a formalizzare la classe di funzioni che ti interessano usando una definizione ricorsiva. Hai provato a vedere cosa succede quando usi la regola della catena e vedi se riesci a ottenere un algoritmo ricorsivo che gestisce tutti i casi?
DW

3
Poiché la differenziazione è semplice, ci stai davvero chiedendo se possiamo decidere se un'espressione è identicamente zero. Questo è probabilmente un problema su quale informazione è più facile da trovare. F
Yuval Filmus,

Risposte:


8

La risposta breve alla tua domanda è "no". Il teorema di Richardson e le sue estensioni successive affermano sostanzialmente che non appena si includono le funzioni trigonometriche elementari, il problema di decidere se (e quindi se f ( x ) = g ( x ) , poiché questo è lo stesso di f ( x ) - g ( x ) = 0 ) è irrisolvibile.f(x)=0f(x)=g(x)f(x)g(x)=0

La cosa interessante di questo è che la teoria del primo ordine dei campi reali chiusi è decidibile. Intuitivamente, il motivo per cui l'aggiunta di funzioni trigonometriche rende indecidibile il sistema del primo ordine è perché è possibile costruire gli interi tramite e la teoria degli interi è indecidibile.{xR:sin(πx)=0}

Se la teoria dei campi chiusi reali con sia decidibile o meno è un problema aperto abbastanza famoso .ex

Ancora più interessante è che se avessi un oracolo che "risolvesse" il problema costante (cioè un oracolo che può dirti se o no), allora l' integrazione delle funzioni elementari in termini finiti è decidibile , e è noto un algoritmo pratico. Quindi, dato G ( x ) , potremmo trovare F ( x ) o sapere che non esiste un integrale elementare di G in termini finiti.f(x)=0G(x)F(x)G


6

Il problema sembra ridurre la seguente domanda più semplice:

Date due funzioni nella classe di funzioni, abbiamo F ( x ) = G ( x ) per tutte le x ? (In altre parole, hanno lo stesso valore ovunque?)F,GF(x)=G(x)x

Non so se questo sia decidibile, per questa classe di funzioni. Se lo è, anche il tuo problema dovrebbe essere decidibile.


F(x)F(x)F(x)=G(x)x

Quindi il passo chiave è la differenziazione simbolica. Scopriamo come farlo in modo più dettagliato. Possiamo definire ricorsivamente la classe di funzioni consentite:

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))

dove varia su costanti e su funzioni.cF,F1,F2

È quindi possibile escogitare un algoritmo ricorsivo per differenziare simbolicamente questa classe di funzioni, usando le regole standard di calcolo (ad esempio, la regola della catena, ecc.). In particolare, possiamo gestire tutti i casi precedenti e mostrare ricorsivamente che la derivata può essere espressa simbolicamente come una funzione all'interno di questa classe. Per esempio:

  • Se , .F(x)=cF(x)=0

  • Se , .F(x)=xF(x)=1

  • Se , .F(x)=exF(x)=ex

  • Se , .F(x)=log(x)F(x)=1/x

  • Se , .F(x)=sin(x)F(x)=cos(x)

  • Se , .F(x)=tan(x)F(x)=1+(tan(x))2

  • Se , .F(x)=F1(x)+F2(x)F(x)=F1(x)+F2(x)

  • Se , .F(x)=F1(x)×F2(x)F(x)=F1(x)F2(x)+F1(x)F2(x)

  • Se , (regola catena).F(x)=F1(F2(x))F(x)=F1(F2(x))F2(x)

E così via. In ogni caso, se è nella classe delle funzioni consentite, allora lo è anche , e puoi elaborare ricorsivamente un'espressione simbolica per - questo è noto come differenziazione simbolica .F(x)F(x)F(x)

Infine, non resta che verificare se per tutte le . Questo è il problema che menziono all'inizio della mia risposta.F(x)=G(x)x


Esiste un metodo semplice per verificare se due funzioni sono identiche tra loro e mi aspetto che funzionino abbastanza bene nella pratica. L'algoritmo è questo: scegli ripetutamente un valore casuale di e controlla se vale per quel valore di . Se vale con l'uguaglianza per molti scelti casualmente , allora l'output "sono identicamente uguali". Se trovi una per la quale , allora scrivi "sono diversi".F ( x ) = G ( x ) x x x F ( x ) G ( x )xF(x)=G(x)xxxF(x)G(x)

Non vi è alcuna garanzia che ciò funzioni, ma per molte classi di funzioni, l'output di questa procedura sarà corretto con alta probabilità. In particolare, supponiamo di avere una distribuzione su rappresentata dalla variabile casuale e alcuni tali che vale per tutte le della classe. Supponi inoltre che la classe di funzioni consentite sia chiusa per sottrazione (come la tua classe). Ne consegue che round della procedura di cui sopra dà la risposta sbagliata con probabilità al massimo .xXϵ>0Pr[F(X)=0]ϵFr(1ϵ)r

Inoltre, se esiste una procedura randomizzata per il test di uguaglianza polinomiale, il problema è decidibile.

Resta da chiedere se tale risultato valga per la tua particolare classe di funzioni. L'affermazione sopra probabilmente non regge. Tuttavia, se siamo fortunati, forse potremmo essere in grado di dimostrare qualcosa di simile al seguente:

Per tutti , forse possiamo trovare una distribuzione su numeri reali, cioè una variabile casuale e una costante , tale che tale che vale per tutte le funzioni che sono nella tua classe e hanno "dimensione" al massimo .sNXsϵs>0Pr[F(X)=0]Fs

Se questo è vero, ne seguirà che esiste un algoritmo randomizzato per il test di uguaglianza polinomiale e quindi il tuo problema è decidibile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.