Métodos numéricos para inversão de transformadas integrais?

11

Estou tentando inverter numericamente a seguinte transformação integral:

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

Portanto, para um dado F(y) , preciso aproximar onde:f(x)

  • F ( y )f(x) e são reais e positivosF(y) (são distribuições de probabilidade contínuas)
  • x,y são reais e positivos (são magnitudes)

Eu tenho um método muito confuso e de força bruta para fazer isso no momento:

Eu defino e o spline sobre uma série de pontos, os valores dos pontos estriados são 'adivinhados' por amostragem aleatória, o que gera um previsto . Um algoritmo genético básico que escrevi minimiza a diferença entre a matriz prevista e medida . Tomo então qual o algoritmo converge como minha resposta para a inversão.F ( y ) F ( y ) f ( x )f(x)F(y)F(y)f(x)

Essa abordagem funciona razoavelmente bem em alguns casos simples, mas parece confusa para mim e não particularmente robusta.

Alguém pode me dar orientação sobre melhores maneiras de resolver esse problema?

Obrigado pelo seu tempo e ajuda!

[publicado em x em Computerscience]

CBowman
fonte

Respostas:

13

Um método bastante simples seria escolher uma base no espaço de funções e converter a transformação integral em uma matriz. Então você pode simplesmente inverter a matriz.

Matematicamente, aqui está como isso funciona: você precisa de algum conjunto de funções de base ortonormais . (Você pode sair sem que eles sejam normalizadas também, mas é mais fácil de explicar desta maneira.) Meios Ortonormais que o produto interno T i , T j= δ i j , ondeTi(x)Ti,Tj=δij

(1)Ti,TjabW(x)Ti(x)Tj(x)dx=δij

Aqui é uma função de peso. Isso e os limites de um e b estão vinculados a sua escolha de T i . Depois de escolher qual conjunto de funções básicas usar, você pode codificar os limites e a função de peso no seu programa.W(x)abTi

Usando a ortonormalidade, você pode expressar qualquer função, como e F ( y ) , como combinações lineares dessas funções básicas:f(x)F(y)

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

onde os coeficientes são calculados como

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

Você pode verificar se essas expressões são consistentes com as definições dos coeficientes, eq. (2) e a ortonormalidade, eq. (1)

Agora, calcule a transformação de cada uma das funções básicas; vamos chamá-lo.T~i(y)

T~i(y)0yexp[12(y2+x2)]I0(xy)Ti(x)dx

é uma função, e assim você pode expressá-lo como uma combinação linear das funções de base, assim como fizemos comT~i(y) e F ( y ) :f(x)F(y)

T~i(y)=kAikTk(y)

onde os elementos da matriz são determinados da mesma maneira que encontramos c i e C j acima:AikciCj

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

Na prática, esta é uma integral dupla em vez nojento, mas você só tem que fazer isso uma vez (nunca) para cada combinação de e k . Você pode fazer as integrais numericamente e codificar os valores resultantes em seu programa. (Nota: Com uma escolha inteligente deik e W ( x ) ., Você pode ser capaz de fazê-lo assim a integral pode ser feito simbolicamente Se isto é possível depende do seu transformar Você pode fazer isso com o. Transformação de Fourier, mas estou inclinado a pensar que não é possível a transformação que você está perguntando aqui.)Ti(x)W(x)

Em termos dos elementos da matriz e coeficientes c i e C j , a relação entre f ( x ) e F ( y ) se reduz a um sistema linearAikciCjf(x)F(y)

jCjTj(y)F(y)=0yexp[12(y2+x2)]I0(xy)iciTi(x)f(x)dx=ici0yexp[12(y2+x2)]I0(xy)Ti(x)dx=icikAikTk(y)

Dada a ortogonalidade das funções de base, é possível isolar qualquer coeficiente , retirando o produto interno de ambos os lados com T :CT

(jCjTj),T=(icikAikTk),TabW(y)jCjTj(y)T(y)dy=abW(y)icijAikTk(y)T(y)dyjCjabW(y)Tj(y)T(y)dy=icikAikabW(y)Tk(y)T(y)dyjCjδj=icikAikδkC=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)=11x2a=1b=1Ti,Tj=δijπ/2i=j0T0,T0=π

David Z
fonte