Tích hợp số của hàm được hỗ trợ nhỏ gọn trên một tam giác


10

như tiêu đề cho thấy tôi đang cố gắng tính tích phân của hàm được hỗ trợ nhỏ gọn (đa thức tinh túy của Wendland) trên một hình tam giác. Lưu ý rằng trung tâm của hàm nằm ở đâu đó trong không gian 3 chiều. Tôi tích hợp chức năng này trên một hình tam giác tùy ý, nhưng nhỏ ( ). Tôi hiện đang sử dụng tích hợp được mô tả bởi Dunavant, 1985 (p = 19).area<(radius/4)22

Tuy nhiên, có vẻ như các quy tắc bậc hai này không phù hợp với các vấn đề được hỗ trợ nhỏ gọn. Điều này được hỗ trợ bởi thực tế là khi tôi tích hợp (vì vậy một hàm nằm trong vòng tròn bán kính 1) trên một mặt phẳng được phân tách bằng các tam giác, kết quả (đã chuẩn hóa) của tôi nằm giữa 1.001 và 0.897.f(r)=[r1]

Vì vậy, câu hỏi của tôi là, có một quy tắc bậc hai chuyên ngành tồn tại cho loại vấn đề này? Một quy tắc tích hợp tổng hợp bậc thấp sẽ làm việc tốt hơn?

Thật không may, thói quen này thực sự quan trọng trong mã của tôi nên độ chính xác là rất quan trọng. Mặt khác, tôi cần thực hiện việc tích hợp này "một vài lần" trong một bước thời gian duy nhất để chi phí tính toán không quá cao. Song song hóa không phải là một vấn đề vì tôi sẽ thực hiện việc tích hợp nối tiếp.

Cảm ơn trước cho câu trả lời của bạn.

EDIT: Đa thức của Wendland được cho bởi với và với r_0 là một vectơ tùy ý trong \ mathbb {R} ^ 3W(q)=[q2]αh3(1q2)4(2q+1)α=2116πq=rr0hr0R3

EDIT2: Nếu Δ là tam giác hai chiều thì tôi muốn tính Δω(r)dr với ω(r)=W(rr0h) . Vì vậy, q trong W sẽ không bao giờ nhỏ hơn 0. Lưu ý rằng tích phân là tích phân bề mặt trên bề mặt 2 chiều trong R3

EDIT3: Tôi có một giải pháp phân tích cho bài toán 1-D (dòng). Tính toán một cho 2-D (tam giác) cũng có thể có thể.


Bạn có thể cho chúng tôi biết thêm một vài chi tiết về chức năng bạn đang cố gắng tích hợp? Có phải nó chỉ là một đa thức? Hoặc một đa thức piecewise?
Pedro

Chỉnh sửa theo yêu cầu.
Azrael3000

Câu trả lời:


4

Vì chức năng hoạt động trơn tru trong , nhưng không ở mức độ cố định (trong mặt phẳng, nghĩa là), tôi sẽ đề xuất sử dụng sơ đồ thích ứng đơn giản, ví dụ Quy tắc hình thang với phương pháp của Romberg , theo cả hai chiều.q2

Nghĩa là, nếu tam giác của bạn được xác định bởi các đỉnh , và và bạn có một thói quen tích hợp dọc theo dòng từ đến , bạn có thể thực hiện như sau (trong ký hiệu Matlab):xyzR3romb(f,a,b)fab

int = romb( @(xi) romb( W , xi , y+(z-y)*(xi-x)./(z-x) ) , x , z );

Trong romb, không sử dụng một số điểm cố định, nhưng tiếp tục tăng bảng cho đến khi chênh lệch giữa hai đường chéo liên tiếp nằm dưới dung sai yêu cầu của bạn. Vì chức năng của bạn trơn tru, đây sẽ là một ước tính lỗi tốt.

Nếu các phần của tam giác nằm ngoài miền của , bạn có thể thử điều chỉnh các giới hạn tích hợp trong mã trên cho phù hợp.W(q)

Đây có thể không phải là cách hiệu quả nhất để giải quyết vấn đề của bạn, nhưng khả năng thích ứng sẽ mang lại cho bạn sự mạnh mẽ hơn nhiều so với quy tắc ở mức độ cố định.


Hàm này là smmoth ở mọi nơi ngoại trừ . Các khu phố của điểm này đang gây ra rắc rối. q=0
Arnold Neumaier

Ah phân rã thành hai vấn đề 1-D, một ý tưởng không tồi chút nào. Bởi vì có một điều mà tôi chưa nói với bạn. Tôi có một giải pháp phân tích trong 1-D để tôi có thể thay thế phần bên trong bằng chức năng phân tích. Tôi sẽ thực hiện cú đánh +1 đó
Azrael3000 22/03/2016

@ArnoldNeumaier, tôi xin lỗi, tôi không thấy điều đó là có thể. Bạn có thể giải thích?
Pedro

trơn tru như một hàm của , nhưng là một hàm không của , và tích hợp là trên , theo như tôi hiểu câu hỏi. Do đó, hàm tổng hợp là hàm nonsmooth của . qqrrr
Arnold Neumaier

1
@Pedro Tôi đã thực hiện nó và nó hoạt động như một cơ duyên. Chúng tôi thực sự cũng tìm thấy một giải pháp phân tích ngày hôm nay. Nhưng điều này chỉ dành cho một trường hợp đặc biệt có thể được sử dụng để xây dựng lại trường hợp chung. Điều đó có nghĩa là chúng ta cần thực hiện một số phân tách miền. Vì Romberg hội tụ trong khoảng 4 bước, tôi nghĩ rằng vì điều này sẽ nhanh hơn sử dụng công thức phân tích. Và theo Wikipedia chúng ta vẫn có thể làm tốt hơn Romberg khi sử dụng đa thức hợp lý. Bạn sẽ tìm thấy tên của bạn trong phần xác nhận của bài báo tiếp theo của tôi :) Chúc mừng.
Azrael3000

2

Để có cái nhìn tổng quan về các quy tắc hình khối, xem "R. Cools, Bách khoa toàn thư về công thức hình khối J. Độ phức tạp, 19: 445-453, 2003". Sử dụng một quy tắc cố định, có thể cung cấp cho bạn lợi thế là một số quy tắc tích hợp chính xác các đa thức (như phương trình bậc hai Gauss thực hiện trong một chiều).

Cools cũng là một trong những tác giả chính của CUBPACK , một gói phần mềm cho hình khối số.


Tôi nghĩ vấn đề ở đây là hàm là đa thức của , nhưng q là hàm phi tuyến tính trong tọa độ không gian. Hàm này trơn tru đến cạnh của hàm cơ sở, nhưng không phải là đa thức, ngoại trừ dọc theo các trục. qq
Pedro

Đây là Pedro đúng.
Azrael3000

à ok lỗi của tôi. lấy làm tiếc.
GertVdE

2

Các quy tắc tích hợp giả định rằng hàm này gần đúng cục bộ bởi một đa thức bậc thấp. Vấn đề của bạn không có gì để làm với sự hỗ trợ nhỏ gọn. Các hàm cơ sở xuyên tâm được hỗ trợ nhỏ gọn được làm mịn tại ranh giới hỗ trợ và các quy tắc bậc hai cho đến thứ tự độ mịn có thể được sử dụng mà không gặp vấn đề gì. (Các quy tắc bậc cao hơn không giúp ích; do đó bạn có thể không nên sử dụng quy tắc tích hợp chính xác các đa thức bậc 5.)

Trong trường hợp của bạn, sự không chính xác xuất phát từ thực tế là giả định về tính gần đúng đa thức tốt không thành công trong trường hợp của bạn đối với các tam giác gần , ngay cả khi chúng không chứa r 0 .r0r0

trơn tru như một hàm của q , nhưng q là hàm nonsmooth của r , với độ dốc trở thành vô hạn trong giới hạn r r 0 . Tích hợp là trên r và hàm tổng hợp là hàm nonsmooth của r .Wqqrrr0rr

Nếu tam giác không chứa , hàm là C i n f nhưng điều này không giúp ích gì vì đạo hàm cao hơn phát triển rất nhanh gần với r 0 và sai số của phương thức bậc cao tỷ lệ thuận với đạo hàm bậc cao, do đó rất lớn!r0Cinfr0

Biện pháp khắc phục đơn giản là chia mỗi tam giác T thành một số N_T của các tam giác con. Bạn có thể lấy xa r 0 , và N T » 1 gần r 0 . Bạn có thể tìm ra ngoại tuyến N T phải lớn như thế nào đối với các tam giác có đường kính nhất định và khoảng cách từ r 0 để đạt độ chính xác mong muốn. Hơn nữa, bạn chỉ nên sử dụng các công thức bậc thấp gần với r 0 .NT=1r0NT1r0NTr0r0

Khi bạn tích hợp trên một hình tam giác, nhưng là 3 chiều, hình tam giác rõ ràng nằm trong R 3 .r0R3

Do đó, một khắc phục nhanh hơn sẽ lập bảng tích phân cho là một hàm của tọa độ tam giác (bình thường bằng cách quay nó thành một 2 chiều x y -plane như vậy mà một đỉnh dối trá trên x trục, và phản ánh nó như vậy mà một đỉnh thứ hai nằm phía trên nó). Bảng này phải đủ chi tiết để làm cho phép nội suy tuyến tính hoặc bậc hai đủ chính xác. Nhưng bạn có thể sử dụng phương thức chậm được phác thảo trước để tạo bảng này.r0=0xyx

Một cách khác để thoát khỏi vấn đề là sử dụng hàm cơ sở xuyên tâm được hỗ trợ nhỏ gọn là đa thức trong chứ không phải q . Điều này là trơn tru ở khắp mọi nơi, và dễ dàng để tích hợp.q2q


Tôi nghĩ rằng có một sự hiểu lầm nhỏ. Tôi cập nhật mô tả câu hỏi của tôi. Như một vấn đề thực tế, trong tích phân không bao giờ có thể nhỏ hơn 0. Và r 0 không nhất thiết phải chứa trong tam giác. qr0
Azrael3000

Bổ sung mới của bạn không có ý nghĩa với tôi. Nếu rồi nên phải r . Hay bạn tích hợp trên một tam giác 2D trong R 3 ? - Tôi không cho rằng r 0 nằm trong tam giác. Tôi chỉ thêm vào một lúc chi tiết hơn cho câu trả lời của tôi. r0R3rR3r0
Arnold Neumaier

Vâng, đúng là tôi tích hợp trên một tam giác 2D trong . R3
Azrael3000
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.