積分変換を反転するための数値的方法?


11

私は次の積分変換を数値的に反転しようとしています:

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

したがって、与えられたに対して、f x を近似する必要が あります。F(y)f(x)

  • および F y は実数かつ正f(x)F(y)(連続確率分布)
  • は実数で正ですx,y(大きさです)

私はこれをすぐに行うための非常に厄介で総当たり的な方法を持っています:

と一連のポイント上のスプラインを定義します。スプライン化されたポイントの値はランダムサンプリングによって「推測」され、予測されたF y が生成されます。私が書いた基本的な遺伝的アルゴリズムは、予測されたF y 配列と測定されたF y 配列の差を最小化します。次に、アルゴリズムが収束するf x を反転の答えとします。f(x)F(y)F(y)f(x)

このアプローチは、いくつかの単純なケースではかなりうまく機能しますが、私には面倒で、特に堅牢ではありません。

誰もこの問題を解決するより良い方法についてのガイダンスをくれますか?

お時間をいただきありがとうございます!

[コンピューターサイエンスに投稿]

回答:


13

かなり簡単な方法は、関数空間で基底を選択し、積分変換を行列に変換することです。次に、マトリックスを反転することができます。

数学的には、次のように機能します。正規直交基底関数セットが必要です。内積こと(あなたは彼らがあまりにも正規化されずに逃げることができますが、それはこの方法を説明する方が簡単です。)正規直交手段T IT J= δ I jのところ、Ti(x)Ti,Tj=δij

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

ここで、は何らかの重み関数です。それと制限aおよびbは、選択したT iに関係しています。使用する基底関数のセットを選択したら、制限と重み関数をプログラムにハードコーディングできます。W(x)abTi

正規直交性を使用すると、F y などの関数を、これらの基底関数の線形結合として表現できます。f(x)F(y)

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

ここで、係数は次のように計算されます

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

これらの式が係数eqの定義と一致していることを確認できます。(2)、および正規直交性、eq。(1)。

次に、各基底関数の変換を計算します。のは、それを呼びましょうT~i(y)

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

関数であり、あなたは我々がやったとして基底関数の線形結合としてそれを表現することができますので、FXFYT~i(y)f(x)F(y)

T~i(y)=kAikTk(y)

ここで、マトリックス要素は、上記のc iおよびC jを見つけたのと同じ方法で決定されますAikciCj

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

実際には、これはかなり厄介な二重積分ですが、kの各組み合わせに対して一度(一度だけ)だけ行う必要があります。積分を数値的に実行し、プログラムで結果の値をハードコーディングできます。(補足:T ix W x )の賢い選択により、積分を象徴的に行うことができるようになるかもしれません。これが可能かどうかは、トランスフォームに依存します。フーリエ変換ですが、ここで質問している変換は不可能だと思います)ikTi(x)W(x)

行列要素および係数c iおよびC jに関して、f x F y の関係は線形システムになります。AikciCjf(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)

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=π

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.