블랙 박스 기능의 불연속성을 찾는 가장 좋은 방법은 무엇입니까?


20

이 질문은 내가 이전에 요청했던 Mathematics Stack Exchange보다이 질문에 더 적합한 곳이라고 제안되었습니다 .

지정된 간격 에서 어디서나 (저렴하게) 평가할 수 있고 노이즈가없는 (예 : 부동 소수점 입도 제외 ) 블랙 박스 기능이 있다고 가정합니다 . 이 기능의 불연속성을 찾는 가장 좋은 방법은 무엇입니까? 나는 얼마나 많은 불연속이 있을지 모른다.[a,b]

나는 간단한 방법 (균일 한 샘플링, 샘플간에 큰 차이가있는 곳을 개선하는 등)을 생각할 수 있지만 더 좋은 방법이 있습니까?

이 기능은 "합리적인"기능으로, 높은 파생 상품과 동일하게 거의 무한히 많은 불연속성이 있다고 가정 할 수 있습니다. 작은 병리학 적 불연속성이 누락 된 경우에는 신경 쓰지 않습니다. .

-

대답 한 모든 사람, 특히 페드로에게 감사합니다. Pachón, Platte 및 Trefethen에 설명 된 방법이 나에게 가장 좋은 접근 방법 인 것처럼 보입니다.


제안 된 방법이 처리 할 수 ​​있는지 궁금합니다.
1x−⌊1x⌋
— JM

@ JM : 구현이 끝나면이 함수의 플롯을 추가 할 것입니다.
— n00b

@ n00b :이 개념이 유용 할 수 있습니다. : mathoverflow.net/q/165038/14414
— Rajesh Dachiraju

답변:


18

Matlab을 사용하는 경우 Chebfun 프로젝트에 관심이있을 수 있습니다 . Chebfun은 함수를 취하여 샘플링하여 다항 보간법으로 나타내려고합니다. 함수에 불연속성이있는 경우 Chebfun은 splitting on명령 을 통해이를 감지 할 수 있어야합니다 . 여기에서 몇 가지 예를 찾을 수 있습니다 .

기본 알고리즘에 관심이 있다면 Pachón, Platte 및 Trefethen의 논문 " Piecewise Smooth Chebfuns "를 참조하십시오.


고마워 Pedro, 나는 Chebfun에 대해 잘 알고있다. 그러나 그것은 크다. (그리고 Matlab 라이센스를 통한 엄청난 암묵적 비용이 따른다). 그래서 나는 실제로 내가 구현할이 문제에 대한 작고 단단한 알고리즘을 찾고 있습니다.
— n00b

@ n00b : 좋은 지적입니다. 예를 들어 가장자리 감지와 같은 기본 알고리즘을 설명하는 논문에 대한 참조를 추가했습니다.
— 페드로

아, 훌륭합니다! 나는이 논문을 보지 못했고, 나의 기대와 달리 Chebfun 불연속 파인더가 실제로 Chebfuns를 사용하지 않는 것 같습니다. 나는 그것을주의 깊게 읽고 해당 코드를 검사합니다 ....
— n00b

11

나는 chebfun 알고리즘이 더 실용적으로 보일 것 같지만 불연속, 즉 이산 웨이블릿 변환을 감지하는 또 다른 방법을 언급 할 필요가있다. 이 Mathematica 문서 페이지 를 살펴보면> 애플리케이션> 불연속 및 에지 감지 섹션을 참조 하여 작동 방식에 대한 아이디어를 얻을 수 있습니다 .

간단히 말해서, 균일하게 샘플링 된 지점에서 DWT를 가져 와서 고주파수 계수를 볼 수 있습니다. 가장 큰 것은 아마도 불연속 점에 해당합니다.f


8

WENO (Weighted Essentially Non-Oscillatory) 방법은 "부드러움 표시기"를 사용하여 유한 체적 및 차이 방법의 불연속성을 감지합니다. Pedro가 준 Chebfun에 대한 설명에서, 일반적인 생각은 같습니다. 보간 다항식을 구성하고 그것들을 사용하여 평활도를 계산합니다.

가중 ENO 체계의 효율적인 구현, J.Comput.Phys., vol. 126, 202--228, 1996 쪽.


5

@Pedro와 함께 에지 감지 알고리즘을 살펴볼 것입니다. 불연속성은 미분에서 무한대이므로 점점 더 미세한 메쉬를보고 관심 영역을 타겟팅하는 것을 고려하십시오.

메쉬가 다듬어 질 때 연속 함수의 미분에 대한 유한 차이 근사값이 감소해야합니다. 메시 간 미분 값에 대한 유한 차이 결과를 비교하면 신호 불연속 신호의 기울기 변화가 나타날 수 있습니다.

편집 : Ok, 불연속에는 무한 도함수가 있지만 무한 도함수가 항상 불연속은 아닙니다 (예를 지적하기 위해 @ n00b 덕분). 에서 와 같은 예제의 경우 유한 차이는 단계 크기 으로 줄어 듭니다 . 분석 유도체는 연속적이지 않다.x=0시간x→0f(x)=sign(x)|x|x=0hx→0


1
문제의 미묘한 점은 불연속성이 미분에서 무한대를 갖는 것으로 볼 수 있지만 그 반대는 사실이 아닙니다. 함수 sign (x) * sqrt (| x |)는 x = 0에서 완벽하게 연속적입니다. 그러나 미분은 거기서 무한합니다
— n00b

나는 또한 "연속적인 기능은 충분히 작은 규모로 부드러워 야한다"는 의견에 동의하지 않는다. 매끄러움은 연속 파생물과 관련이 있습니다. 원래 기능의 연속성은 필요한 조건이지만 충분하지는 않습니다.
— Geoff Oxberry

1
@GeoffOxberry : 그 말을 제거했습니다. FD에서는 합리적인 결과이지만 분석적으로는 아닙니다.
— Phil H
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.