알려진 경계와 다차원 적분의 수치 적 통합


12

(2 차원) 부적절한 적분이 있습니다

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

여기서 적분 도메인 는 , 작지만 의해 더 제한됩니다 . 이후 및 반반이며x = [ 1 , 1 ] y = [ 1 , 1 ] F ( x , y ) > 0 F W W 0 F ( x , y ) y x I W ( x , y )Ax=[1,1]y=[1,1]F(x,y)>0FWW0경계에서 후자의 관계는 정수가 경계에서 단수 일 수 있음을 의미합니다. integrand는 유한합니다. 지금까지 중첩 된 수치 적분으로이 적분을 계산합니다. 이것은 성공적이지만 느립니다. 나는 적분, 아마도 Monte-Carlo 방법을 다루기 위해 더 적절한 (빠른) 방법을 검색합니다. 그러나 나는 비 큐빅 도메인 A의 경계에 포인트를 두지 않고 부적절한 적분의 한계를 올바르게 취하는 것을 필요로합니다. 적분 변환이이 일반적인 표현에 도움이 될 수 있습니까? I 해결할 수 있음을 참고 대한 의 함수로서 심지어 계산 몇 가지 특별한 가중 함수 .F(x,y)yxIW(x,y)


지금까지 사용한 방법에 대해 좀 더 구체적으로 설명해 주시겠습니까? 어떤 특정 루틴을 중첩 방식으로 사용 했습니까? 또한 안에 입니까 , 즉 의 근은 경계에만 있습니까? A F ( x , y )F(x,y)0AF(x,y)
페드로

GSL 알고리즘은 QAGS : gnu.org/software/gsl/manual/html_node/...를 . 편집 해 주셔서 감사합니다 (방정식을 입력하는 옵션이 보이지 않았습니다)!
highsciguy

답변:


7

면책 조항 : 적응 구적법에 대한 박사 학위 논문을 작성 했으므로이 답변은 내 작업에 심각하게 편향됩니다.

GSL의 QAGS는 구 QUADPACK 통합 업체이며, 특히 특이점이있는 경우 완전히 견고하지는 않습니다. 이로 인해 사용자는 실제 필요한 것보다 훨씬 많은 정확도를 요구하므로 통합 비용이 상당히 높아집니다.

GSL을 사용 하는 경우이 백서에 설명 된 내 코드 인 CQUAD 를 사용해보십시오 . 간격 가장자리와 도메인 내에서 특이점을 처리하도록 설계되었습니다. 오류 추정치는 매우 강력하므로 실제로 필요한만큼의 숫자 만 요청하십시오.

Monte-Carlo 통합과 관련하여 원하는 정확도에 따라 다릅니다. 또한 특이점 근처에서 얼마나 잘 작동하는지 잘 모르겠습니다.


구현하는 것이 가장 간단하기 때문에 이것을 분명히 살펴볼 것입니다. 사실 나는 QAGS 루틴이이 문제에 대해 안정적이지 않다는 것을 경험했다.
highsciguy

'GSL_EDIVERGE'의 발생에 영향을 줄 수있는 방법이 있습니까? 일부 매개 변수에 나타나는 것 같습니다.
highsciguy

@highsciguy : 알고리즘은 적분이 유한하지 않다고 판단 될 때 GSL_EDIVERGE를 반환합니다. 실패한 예를 알려 주시면 자세히 살펴볼 수 있습니다.
Pedro

n- 차원의 적분에 대한 일반 코드에 포함되어 있기 때문에 간단한 루틴을 분리하는 것은 조금 어렵습니다. 내가 볼 것입니다 ...하지만 고정 y의 경우, x는 F (x, y) 이후 x가 F (x, y)의 0에 접근함에 따라 1 / sqrt (F (x, y))는 1 / sqrt (x)처럼 동작해야합니다. x에서 다항식으로 쓸 수 있습니다. 그러나 1 / sqrt (x) 동작이 늦게 시작될 수 있습니다. 정수의 숫자 계산이 너무 좋지 않을 수도 있습니다.
highsciguy

1
@ highsciguy : 예, 이것은 나쁜 생각입니다. 대부분의 직교 규칙은 정수가 어느 정도의 부드러움을 가지고 있다고 가정하고 임의의 점에서 0으로 설정하면 불연속성이 발생합니다. 실제 간격을 사용하면 훨씬 더 나은 결과를 얻을 수 있습니다!
페드로

5

몬테 카를로 방법은 일반적으로 직교 점의 차원과의 조합 폭발을 감당할 수없는 높은 차원의 적분이 없으면 적응 직교와 경쟁 할 수 없습니다.

그 이유는 비교적 이해하기 쉽습니다. 예를 들어 여기서 은 문제의 차원입니다. 간단하게하기 위해 모든 차원을 하위 간격 으로 세분화한다고 가정 합니다. 즉, 총 하이퍼 큐브 셀 을 얻습니다 . 예를 들어 가우스 포인트 와 함께 가우스 공식을 사용한다고 가정합시다 . 그러면 직교 점이 있고 가우스 점은 차수 정확도를 제공 하기 때문에 , 평가 지점의 함수로서의 전체 정확도는 [0,1]nf(x)dnxnMMnkN=(kM)nk(2k1)e=O(h5)=O(M(2k1))

e=O(N(2k1)/n).
반면, Monte Carlo 방법은 일반적으로 와 같은 오류 수렴 만 제공합니다. 이는 적어도 가우스 공식보다 더 나쁩니다. 간격 당 포인트 그 이유는 비교적 이해하기 간단합니다. Gauss quadrature는 일종의 현명한 방식으로 보간 점을 선택하지만 Monte Carlo는 그렇지 않습니다. 후자에 유용한 것은 아무것도 기대할 수 없습니다. (물론 가우시안 구적법이 어려운 상황이 있습니다. 예를 들어 통합 영역의 모양이 불규칙한 경우에는 적응 적분법을 사용하는 것이 좋습니다.)K > N / 4 + 1 / 2
e=O(N1/2)
k>n/4+1/2

이제, 간격 당 8 개 또는 10 개 이상의 포인트와 통합 할 때 실제 (안정성) 문제가 있습니다. 따라서 을 원하면 이상으로 갈 수 없습니다 . 반면,이 경우 방향 당 단일 간격 ( )을 선택하더라도 통합 포인트가 산출 되므로 평생 평가에서 얻을 수있는 것보다 훨씬 많습니다. 다시 말해, 충분한 통합 지점을 평가할 수있는 한 통합 도메인의 세분화에 대한 직교 법은 항상 더 효율적인 방법입니다. 사람들이 더 높은 수렴 순서에도 불구하고 사람들이 Monte Carlo 방법을 사용하는 경우 더 이상 단일 세분화에서 통합 지점을 평가할 수없는 높은 차원의 적분이있는 경우입니다.n = 30 M = 1 N = 8 30k8n=30M=1N=830


1

중첩 된 이중 지수 구적법을 시도하십시오 ( Ooura 구현 참조 ). 이 기법은 변수 변환을 사용하여 변환 된 정수가 경계에서 매우 매끄럽게 작동하고 경계에서 특이점을 처리하는 데 매우 효율적입니다. 그의 웹 사이트에있는 DE quadrature에도 참고 문헌 목록이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.