2013-06-17 7 views
1

함수를 알 수 없을 때 python 2.7을 사용하여 곡선 아래 영역을 계산하는 방법을 찾으려고합니다. 좌표 데이터는함수가 알려지지 않은 경우 Integral?

0  0 
0.000194439  0 
0.000388878  0 
0.000583317  0 
0.000777756  0 
0.000972195  0 
0.00116663  0 
0.00136107  0 
0.00155551  0 
0.00174995  0 
0.00194439  0 
0.00213883  0 
0.00233327  0 
0.00233327  0.00588235 
0.00252771  0.00588235 
............................... 
................................. 

과 같습니다.

값은 항상 양수입니다. 이 함수는 대개 로그 함수와 비슷하지만이를 보장하지는 않습니다.

근사치로 (x2-x1) * y 등을 계산할 수 있지만 통합을 사용하는 것이 좋습니다.

따라서 내 질문은 :
코드에서 주어진 좌표의 함수를 어떻게 찾을 수 있습니까? 아니면 이것을하지 않고도 달성 할 수 있습니까? 후자에게 내 수학이 극도로 녹슬었기 때문에 모든베이스를 커버하기 만하면됩니다.

+0

최소 제곱 (또는 다른 방법)을 사용하여 데이터 세트와 거의 일치하는 함수를 찾고 그 정수를 계산하십시오. – Bakuriu

+0

@Bakuriu -별로 좋은 생각은 아닙니다. 이 함수를 찾는 것은 종종 간단한 사다리꼴이나 심슨의 규칙보다 더 좋은 근사를 줄 수있는 까다로운 일이 될 것입니다. 그리고 이제 문제에 대한 또 다른 단계를 추가했습니다. 문제가있는 수학 기술을 가진 사람이 이제는 새로운 기술 전체를 배우게됩니다. 단순한 사다리꼴 또는 심슨 규칙이나 스플라인 보간을 통합하는 것이 훨씬 더 좋습니다. –

답변

5

코드에서 주어진 좌표에 해당하는 함수를 어떻게 찾을 수 있습니까?

수 없습니다. 포인트 세트가 주어지면 모든 포인트를 통과하는 무한한 수의 함수가 있습니다. 그 중 하나는 polynomial of degree up to N (여기서 N은 보유하고있는 데이터 요소의 수)을 사용하여 구성 할 수 있습니다. 그러나 이것은 함수가 표현하려고하는 현실과 거의 일치하지 않습니다 (일반적으로 데이터 요소간에 격렬하게 진동합니다). 일반적으로, 당신이 할 수있는 최선의 방법은 적분에 대한 근사를 생성하는 것입니다.

trapeziodal rule 또는 Simpson's Rule을 사용하면 약간의 향상을 얻을 수 있지만 샘플링 속도가 적당하면 대부분의 기능에서 그렇게 나쁘지는 않습니다.

+0

"그러나 이것은 함수가 표현하려고하는 현실과 거의 일치하지 않습니다."- 보간법의 포인트는 모든 점을 완벽하게 통과하는 것입니다 . 이 기능은 포인트 밖에서 (첫 번째 포인트 이후와 마지막 포인트 이후) 격렬하게 진동하지만 각 포인트를 부드럽게 통과합니다. – Tim

+0

나의 무지를 용서하십시오.하지만 그 기능을 모른 채 심슨의 규칙을 어떻게 구현합니까? – Bohren

+0

@Bohren - 예를 들어 [this] (http://en.wikipedia.org/wiki/Simpson%27s_rule#Alternative_extended_Simpson.27s_rule)을 참조하십시오. – mgilson