Metodi numerici per invertire le trasformazioni integrali?


11

Sto provando a invertire numericamente la seguente trasformazione integrale:

F(y)=∫0∞yexp⁡[−12(y2+x2)]I0(xy)f(x)dx

Quindi per una data ho bisogno di approssimare f ( x ) dove:F(y)f(x)

  • e F ( y ) sono reali e positivif(x)F(y)(sono distribuzioni di probabilità continue)
  • sono reali e positivix,y(sono magnitudini)

Ho un metodo molto disordinato e bruto per farlo al momento:

Definisco e la spline su una serie di punti, i valori dei punti scanalati vengono "indovinati" mediante campionamento casuale, che produce una F ( y ) prevista . Un algoritmo genetico di base che ho scritto minimizza la differenza tra l' array F ( y ) previsto e misurato . Prendo quindi la f ( x ) a cui converge l'algoritmo come mia risposta per l'inversione.f(x)F(y)F(y)f(x)

Questo approccio funziona abbastanza bene in alcuni casi semplici, ma mi sembra disordinato e non particolarmente robusto.

Qualcuno può darmi una guida su modi migliori per risolvere questo problema?

Grazie per il tuo tempo e aiuto!

[x-pubblicato su computerscience]

Risposte:


13

Un metodo abbastanza semplice sarebbe quello di scegliere una base nello spazio funzionale e convertire la trasformazione integrale in una matrice. Quindi puoi semplicemente invertire la matrice.

Matematicamente, ecco come funziona: hai bisogno di un insieme di funzioni di base ortonormali . (Si può ottenere via senza che vengano normalizzati troppo, ma è più facile da spiegare in questo modo.) Mezzi ortonormali che il prodotto interno ⟨ T I , T j ⟩ = δ i j , doveTi(x)⟨Ti,Tj⟩=δij

(1)⟨Ti,Tj⟩≡∫abW(x)Ti(x)Tj(x)dx=δij

Qui è una funzione di peso. Questo, e il limite a e b sono legati alla scelta del T i . Una volta scelto quale set di funzioni di base utilizzare, è possibile codificare i limiti e la funzione di peso nel programma.W(x)abTi

Usando l'ortogonalità, puoi esprimere qualsiasi funzione, come e F ( y ) , come combinazioni lineari di queste funzioni di base:f(x)F(y)

(2)f(x)=∑iciTi(x)F(y)=∑jCjTj(y)

dove i coefficienti sono calcolati come

(3)ci=⟨f,Ti⟩=∫abW(x)f(x)Ti(x)dx(4)Cj=⟨F,Tj⟩=∫abW(y)F(y)Tj(y)dy

Puoi verificare che queste espressioni siano coerenti con le definizioni dei coefficienti, eq. (2) e l'ortogonalità, eq. (1).

Ora, calcola la trasformazione di ciascuna delle funzioni di base; Chiamiamolo .T~i(y)

T~i(y)≡∫0∞yexp⁡[−12(y2+x2)]I0(xy)Ti(x)dx

è una funzione, quindi puoi esprimerla come una combinazione lineare delle funzioni di base proprio come abbiamo fatto conf(x)eF(y):T~i(y)f(x)F(y)

T~i(y)=∑kAikTk(y)

dove gli elementi della matrice sono determinati nello stesso modo in cui abbiamo trovato c i e C j sopra:AikciCj

(5)Aik=⟨T~i,Tk⟩=∫abW(y)T~i(y)Tk(y)dy

ikTi(x)W(x)

AikciCjf(x)F(y)

∑jCjTj(y)⏞F(y)=∫0∞yexp⁡[−12(y2+x2)]I0(xy)∑iciTi(x)⏞f(x)dx=∑ici∫0∞yexp⁡[−12(y2+x2)]I0(xy)Ti(x)dx=∑ici∑kAikTk(y)

CℓTℓ

⟨(∑jCjTj),Tℓ⟩=⟨(∑ici∑kAikTk),Tℓ⟩∫abW(y)∑jCjTj(y)Tℓ(y)dy=∫abW(y)∑ici∑jAikTk(y)Tℓ(y)dy∑jCj∫abW(y)Tj(y)Tℓ(y)dy=∑ici∑kAik∫abW(y)Tk(y)Tℓ(y)dy∑jCjδjℓ=∑ici∑kAikδkℓCℓ=∑iciAiℓ

ℓCj

CjciAijciAijCjF(y)

F(y)Cj

Cj=∑iciAij

A

ij1NNf(x)T1(x),…,TN(x)1MF(y)T1(y),…,TM(y)M=NMNNciAM×NA11ANM

[−1,1]TiW(x)=11−x2a=−1b=1⟨Ti,Tj⟩=δijπ/2i=j≠0⟨T0,T0⟩=π

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.