Tích hợp số của tích phân đa chiều với các ranh giới đã biết


12

Tôi có tích phân không đúng (2 chiều)

I=AW(x,y)F(x,y)dxdy

trong đó miền tích hợp A nhỏ hơn x=[1,1] , y=[1,1] nhưng bị giới hạn bởi F(x,y)>0 . Kể từ khi FW là mịn và W0tại các ranh giới, mối quan hệ sau này ngụ ý rằng tích phân có thể là số ít ở các ranh giới. Các integrand là hữu hạn mặc dù. Tôi, cho đến nay, tính tích phân này với tích phân số lồng nhau. Đây là thành công nhưng chậm. Tôi tìm kiếm một phương pháp thích hợp hơn (nhanh hơn) để giải quyết tích phân, có thể là phương pháp Monte-Carlo. Nhưng tôi cần một điểm không đặt các điểm trên ranh giới của miền không phải khối A và lấy giới hạn của tích phân không chính xác. Một phép biến đổi tích phân có thể giúp cho biểu thức tổng quát này không? Lưu ý rằng tôi có thể giải F(x,y) cho là hàm của và thậm chí tính cho một vài hàm trọng số đặc biệt .yxIW(x,y)


Bạn có thể nói rõ hơn một chút về những phương pháp bạn đã sử dụng cho đến nay? Những thói quen cụ thể nào bạn đã sử dụng một cách lồng nhau? Ngoài ra, là bên A , tức là gốc rễ của F ( x , y ) duy nhất trên ranh giới? F(x,y)0AF(x,y)
Pedro

Thuật toán GSL QAGS: gnu.org/software/gsl/manual/html_node/ mẹo . Cảm ơn bạn đã chỉnh sửa (không thấy tùy chọn cho phương trình sắp chữ)!
highsciguy

Câu trả lời:


7

Tuyên bố miễn trừ trách nhiệm: Tôi đã viết luận án tiến sĩ về phương pháp thích nghi, vì vậy câu trả lời này sẽ bị sai lệch nghiêm trọng đối với công việc của tôi.

QAGS của GSL là nhà tích hợp QUADPACK cũ và nó không hoàn toàn mạnh mẽ, đặc biệt là trong sự hiện diện của các điểm kỳ dị. Điều này thường dẫn đến việc người dùng yêu cầu nhiều chữ số chính xác hơn nhiều so với thực tế họ cần, do đó làm cho việc tích hợp khá tốn kém.

Nếu bạn đang sử dụng GSL, bạn có thể muốn thử mã của riêng tôi, CQUAD , được mô tả trong bài viết này . Nó được thiết kế để đối phó với các điểm kỳ dị, cả ở các cạnh khoảng và trong miền. Lưu ý rằng ước tính lỗi là khá mạnh mẽ, vì vậy chỉ yêu cầu nhiều chữ số như bạn thực sự yêu cầu.

Liên quan đến tích hợp Monte-Carlo, nó phụ thuộc vào loại độ chính xác mà bạn đang tìm kiếm. Tôi cũng không chắc chắn về việc nó sẽ hoạt động tốt như thế nào gần các điểm kỳ dị.


Tôi chắc chắn sẽ có một cái nhìn về điều này bởi vì nó sẽ đơn giản nhất để thực hiện nó. Trong thực tế, tôi đã trải nghiệm rằng thói quen QAGS không phải là siêu ổn định cho vấn đề này.
highsciguy

Có cách nào để tác động đến sự xuất hiện của 'GSL_EDIVERGE' không? Nó dường như xuất hiện cho một số tham số.
highsciguy

@highsciguy: Thuật toán trả về GSL_EDIVERGE khi tin rằng tích phân không hữu hạn. Nếu bạn có thể cho tôi một ví dụ mà nó thất bại, tôi có thể xem xét kỹ hơn về nó.
Pedro

Một chút khó khăn để cô lập một thói quen đơn giản, vì nó được nhúng vào một mã chung cho các tích phân n-dimensinal. Tôi sẽ thấy ... Nhưng đối với y cố định, 1 / sqrt (F (x, y)) sẽ hoạt động như 1 / sqrt (x) khi x tiếp cận các số 0 của F (x, y) kể từ F (x, y) sau đó có thể được viết dưới dạng đa thức trong x. Nhưng có thể là hành vi 1 / sqrt (x) bắt đầu muộn. Cũng có thể là giới hạn số của integrand không quá tốt.
highsciguy

1
@highsciguy: Vâng, đây là một ý tưởng tồi. Hầu hết các quy tắc bậc hai đều cho rằng tích phân có độ mịn nhất định và nếu bạn đặt nó về 0 như một số điểm tùy ý, bạn sẽ đưa ra một gián đoạn. Bạn sẽ nhận được kết quả tốt hơn nhiều nếu bạn sử dụng khoảng thời gian thực tế!
Pedro

5

Các phương pháp Monte Carlo nói chung có thể không cạnh tranh với phương trình bậc hai thích ứng trừ khi bạn có tích phân chiều cao, nơi bạn không thể đủ khả năng cho sự bùng nổ tổ hợp của các điểm cầu phương với kích thước.

Lý do tương đối dễ hiểu. Lấy ví dụ, chỉ [0,1]nf(x)dnxnMMnkN=(kM)nk(2k1)e=O(h5)=O(M(2k1))

e=O(N(2k1)/n).
e=O(N1/2)
k>n/4+1/2

k8n=30M=1N=830điểm tích hợp, nhiều hơn bạn có thể đánh giá trong đời. Nói cách khác, miễn là bạn có thể đánh giá đủ các điểm tích hợp, thì phương trình bậc hai trên các phân vùng của miền tích hợp của bạn luôn là cách tiếp cận hiệu quả hơn. Đó là trường hợp bạn có tích phân chiều cao mà bạn không thể đánh giá các điểm tích hợp trên ngay cả một phân khu duy nhất mà mọi người sử dụng phương pháp Monte Carlo mặc dù thứ tự hội tụ kém hơn.


1

Hãy thử một phép nhân đôi số mũ lồng nhau (xem phần triển khai của Ooura ). Kỹ thuật này sử dụng một phép biến đổi làm cho tích phân biến đổi hoạt động rất trơn tru tại các ranh giới và rất hiệu quả để xử lý các điểm kỳ dị ở ranh giới. Ngoài ra còn có một danh sách rất tốt các tài liệu tham khảo về phương pháp DE trên trang web của mình.

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.