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


11

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

F(y)=∫0∞yexp⁡[−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]

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,Tj⟩≡∫abW(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)≡∫0∞yexp⁡[−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)=∫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)

Dada a ortogonalidade das funções de base, é possível isolar qualquer coeficiente , retirando o produto interno de ambos os lados com T ℓ :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⟩=π

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.