Cách tốt nhất để tìm thấy sự không liên tục của chức năng hộp đen là gì?


20

Có ý kiến ​​cho rằng đây có thể là một nơi tốt hơn cho câu hỏi này so với Toán học trao đổi ngăn xếp mà tôi đã hỏi nó trước đây .

Giả sử một người có chức năng hộp đen có thể được đánh giá ở bất cứ đâu (giá rẻ) trong một khoảng thời gian xác định và không có nhiễu (ngoại trừ độ chi tiết của dấu phẩy động). Điều gì sẽ là cách tốt nhất để tìm thấy sự không liên tục của chức năng này? Tôi không biết có bao nhiêu điểm không liên tục và có thể không có gì.[a,b]

Tôi có thể nghĩ ra một số phương pháp đơn giản (lấy mẫu thống nhất, tinh chỉnh nơi có sự khác biệt lớn giữa các mẫu, ...), nhưng có lẽ có cách nào tốt hơn?

Hàm này "hợp lý" ở chỗ người ta có thể cho rằng nó có nhiều điểm không liên tục, tương tự đối với các dẫn xuất cao hơn, tôi không bận tâm nếu sự gián đoạn bệnh lý nhỏ bị bỏ qua ... (ứng dụng là âm mưu tự động của các hàm 1d) .

-

Cảm ơn tất cả những người đã trả lời, đặc biệt là Pedro; phương pháp được mô tả trong Pachón, Platte và Trefethen dường như là cách tiếp cận tốt nhất với tôi, vì vậy tôi đi ngay bây giờ để thực hiện nó


Tôi phải tự hỏi nếu bất kỳ phương pháp được đề xuất có thể xử lý
1x1x
JM

@JM: Tôi sẽ thêm một biểu đồ của hàm này khi tôi hoàn thành việc thực hiện.
n00b

@ n00b: Bạn có thể thấy khái niệm này hữu ích. : mathoverflow.net/q/165038/14414
Rajesh Dachiraju

Câu trả lời:


18

Nếu bạn đang sử dụng Matlab, bạn có thể quan tâm đến dự án Chebfun . Chebfun nhận một hàm, lấy mẫu và cố gắng biểu diễn nó dưới dạng nội suy đa thức. Nếu chức năng của bạn có sự không liên tục, Chebfun sẽ có thể phát hiện ra chúng bằng splitting onlệnh. Bạn có thể tìm thấy một số ví dụ ở đây .

Nếu bạn quan tâm đến các thuật toán cơ bản, một tài liệu tham khảo tốt là bài báo " Piecewise Smooth Chebfun " của Pachón, Platte và Trefethen .


Cảm ơn Pedro, tôi quen thuộc với Chebfun, điều này rất tuyệt, nhưng rất lớn (và đi kèm với một chi phí ngầm khổng lồ thông qua giấy phép Matlab). Vì vậy, tôi thực sự đang tìm kiếm một thuật toán chặt chẽ nhỏ cho vấn đề này mà tôi sẽ tự thực hiện.
n00b

@ n00b: Điểm tốt. Tôi đã thêm một tài liệu tham khảo vào bài viết mô tả các thuật toán cơ bản, ví dụ để phát hiện cạnh.
Pedro

A, tuyệt vời! Tôi đã không nhìn thấy bài báo này và trái với mong đợi của tôi, có vẻ như công cụ tìm gián đoạn Chebfun không thực sự sử dụng Chebfun - vì vậy điều này dường như có thể sử dụng được. Tôi sẽ đọc nó một cách cẩn thận và kiểm tra mã tương ứng ....
n00b

11

Tôi nghi ngờ rằng thuật toán chebfun phải có vẻ thực tế hơn, nhưng cần phải đề cập đến một cách nữa để phát hiện sự không liên tục, cụ thể là biến đổi wavelet rời rạc. Bạn có thể biết ý tưởng về cách thức hoạt động của nó bằng cách xem trang tài liệu Mathicala này , xem phần> Ứng dụng> Phát hiện sự không liên tục và các cạnh.

f


8

Các phương pháp có trọng số cơ bản không dao động (WENO) sử dụng "các chỉ số độ mịn" để phát hiện sự không liên tục trong các phương pháp hữu hạn và khối lượng hữu hạn. Từ mô tả của Chebfun mà Pedro đưa ra, có vẻ như ý tưởng chung là như nhau: xây dựng một tập hợp các đa thức nội suy và sử dụng chúng để tính toán một số phép đo độ mịn.

Xem GS Jiang và CW Shu, triển khai hiệu quả các chương trình ENO có trọng số, J.Comput.Phys., Vol. 126, trang 202--228, 1996.


5

Cùng với @Pedro, tôi sẽ xem xét các thuật toán phát hiện cạnh. Sự gián đoạn là vô hạn đối với công cụ phái sinh, vì vậy hãy xem xét việc xem xét một mạng lưới ngày càng tốt và nhắm mục tiêu vào các khu vực quan tâm.

Sự gần đúng sai phân hữu hạn với đạo hàm của hàm liên tục sẽ giảm khi lưới được tinh chế. So sánh kết quả khác biệt hữu hạn cho đạo hàm giữa các mắt lưới sau đó có thể cho thấy sự khác biệt về độ dốc mà tín hiệu không liên tục.

f(x)=sign(x)|x|x=0hx0


1
Một điểm tinh tế của vấn đề là, mặc dù sự gián đoạn có thể được xem là có vô cực trong đạo hàm, nhưng điều ngược lại là không đúng - dấu hiệu hàm (x) * sqrt (| x |) hoàn toàn liên tục tại x = 0, nhưng đạo hàm là vô hạn ở đó
n00b

Tôi cũng không đồng ý với nhận xét rằng "bất kỳ chức năng liên tục nào cũng phải trơn tru ở quy mô đủ nhỏ". Độ mịn phải làm với các dẫn xuất liên tục; tính liên tục của chức năng ban đầu là một điều kiện cần thiết, nhưng không phải là một điều kiện đủ.
Geoff Oxberry

1
@GeoffOxberry: xóa câu nói đó. Đó là một kết quả hợp lý trong FD, nhưng không phân tích.
Phil H
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.