주어진 f와 input은 동일한 길이의 두 개의 숫자 벡터 x와 y를 생성합니다. 내 응용 프로그램의 경우 호출을 통해 이러한 벡터를 호출합니다.R 적분 : 세분의 수를 결정하십시오
return(integrate(approxfun(x,y), range(x)[1], range(x)[2], subdivisions = 300))
이 프로세스를 ~ 1000 개의 다른 데이터 요소에서 실행하고 있습니다. 발생하는의 문제는 내가 점점 계속 것입니다 두 가지 오류 중 하나
Error in integrate(....): maximum number of subdivisions reached
또는
Error in integrate(...): extremely bad integrand behavior
나는 이러한 오류의 모두 트리거 또는 구획의 수에 따라 서로 다른 입력에 전달할 것으로 나타났습니다 I 각 통화에 대해 선택하십시오. 나는 지난 3 시간 동안 시행 착오를 통해 내 전체 신청서가 끝날 가치를 결정하려고 노력했다. 적분을 실행할 수있는 각 호출에서 vector x와 y를 기반으로 세분화 된 값을 체계적으로 결정할 수있는 방법이 있습니까? 각 호출마다 똑같은 구획이 필요하지는 않습니다. 모든 인스턴스에서 좋은 근사값 만 있으면됩니다. 이 프로세스와 관련하여 통합 작업 방법에 대한 다른 정보도 매우 유용합니다. 참고로
, 내가 위해 시도 값이 있었다 : 나는 적절한 서브 인터벌을 결정하는 체계적인 방법을 찾을 수 없습니다 동안 100, 400, 200, 250, 300
통합하려는 커브의 성격을 알지 못하면 제안하기가 어렵습니다. 어쩌면 범위의 함수 여야합니까? 당신의 기능은 평평합니까? 부드러운? – MrFlick
'cubature' 패키지에서'adaptIntegrate (...) '을 시도해 볼 수도 있습니다. 다중 적분을 위해 설계되었지만 1D 적분에도 잘 작동합니다. 속도가 느리지 만 ([this post] (http://stackoverflow.com/questions/7924818/performance-of-adaptintegrate-vs-integrate)),보다 강력합니다. – jlhoward