Phương pháp số để đảo ngược biến đổi tích phân?


11

Tôi đang cố gắng đảo ngược số lượng biến đổi tích phân sau:

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

Vì vậy, đối với một tôi cần xấp xỉ trong đó:f ( x )F(y)f(x)

  • f(x) và là thực và dươngF(y) (chúng là phân phối xác suất liên tục)
  • x,y là thực và tích cực (chúng là cường độ)

Tôi có một phương pháp rất lộn xộn và vũ phu để làm điều này vào lúc này:

Tôi xác định và spline trên một loạt các điểm, các giá trị của các điểm được chia sẽ được 'đoán' bằng cách lấy mẫu ngẫu nhiên, mang lại một dự đoán . Một thuật toán di truyền cơ bản tôi đã viết lên để giảm thiểu sự khác biệt giữa mảng được dự đoán và đo lường . Sau đó tôi lấy mà thuật toán hội tụ thành câu trả lời của tôi cho phép đảo ngược.F ( y ) F ( y ) f ( x )f(x)F(y)F(y)f(x)

Cách tiếp cận này hoạt động khá tốt đối với một số trường hợp đơn giản, nhưng nó cảm thấy lộn xộn với tôi và không đặc biệt mạnh mẽ.

Bất cứ ai có thể cho tôi hướng dẫn về cách tốt hơn để giải quyết vấn đề này?

Cảm ơn bạn đã dành thời gian và sự giúp đỡ!

[x-đăng tại máy tính]

Câu trả lời:


13

Một phương pháp khá đơn giản sẽ là chọn một cơ sở trong không gian hàm và chuyển đổi phép biến đổi tích phân thành ma trận. Sau đó, bạn có thể đảo ngược ma trận.

Về mặt toán học, đây là cách nó hoạt động: bạn cần một số hàm cơ sở trực giao . (Bạn cũng có thể thoát khỏi mà không cần chúng được bình thường hóa, nhưng giải thích theo cách này dễ dàng hơn.) Thông thường có nghĩa là sản phẩm bên trong , trong đóT i , T j= δ i jTi(x)Ti,Tj=δij

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

Ở đây là một số hàm trọng số. Điều đó và các giới hạn ab gắn liền với sự lựa chọn của bạn về T i . Khi bạn chọn tập hợp các hàm cơ bản sẽ sử dụng, bạn có thể mã hóa các giới hạn và hàm trọng số vào chương trình của mình.W(x)abTi

Sử dụng tính trực giao, bạn có thể biểu thị bất kỳ hàm nào, chẳng hạn như F ( y ) , dưới dạng kết hợp tuyến tính của các hàm cơ bản này:f(x)F(y)

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

trong đó các hệ số được tính là

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

Bạn có thể xác minh rằng các biểu thức này phù hợp với các định nghĩa của các hệ số, eq. (2) và tính trực giao, eq. (1).

Bây giờ, tính toán biến đổi của từng hàm cơ bản; hãy gọi nó là .T~i(y)

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

là một hàm và vì vậy bạn có thể biểu diễn nó dưới dạng kết hợp tuyến tính của các hàm cơ bản giống như chúng ta đã làm vớif(x)F(y):T~i(y)f(x)F(y)

T~i(y)=kAikTk(y)

trong đó các phần tử ma trận được xác định giống như cách chúng tôi tìm thấy c iC j ở trên:AikciCj

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

Trong thực tế, đây là một tích phân kép khá khó, nhưng bạn chỉ phải thực hiện một lần (bao giờ) cho mỗi kết hợp của k . Bạn có thể thực hiện các tích phân bằng số và sau đó mã hóa các giá trị kết quả trong chương trình của bạn. (Lưu ý bên: Với sự lựa chọn thông minh T i ( x )W ( x ) , bạn có thể tạo ra nó để tích phân có thể được thực hiện một cách tượng trưng. Điều này có thể phụ thuộc vào biến đổi của bạn. Bạn có thể làm điều đó với Biến đổi Fourier, nhưng tôi có xu hướng nghĩ rằng không thể chuyển đổi mà bạn đang hỏi về đây.)ikTi(x)W(x)

Xét về các yếu tố ma trận và các hệ số c iC j , mối quan hệ giữa f ( x )F ( y ) giảm xuống một hệ tuyến tínhAikciCjf(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)

Căn cứ vào tính trực giao của các chức năng cơ bản, bạn có thể cô lập bất kỳ hệ số đặc biệt bằng cách lấy sản phẩm bên trong của cả hai bên với 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=1i = j 0 T 0 , T 0= πTi,Tj=δijπ/2i=j0T0,T0=π

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.