2017-12-06 2 views
0

np.trapz와 scipy simps를 사용하여 커브 아래의 영역을 계산했는데 올바르게 수행하지 못했음을 알았습니다.파이썬에서 trapz와 simpson을 사용하여 곡선 아래 영역을 올바르게 계산하십시오.

import numpy as np 
from scipy.integrate import simps 


y = np.array([1,2,3,4,5]) 
y1= np.array([5,5,5,5,5]) 

print np.trapz(y,dx=1) 
print simps(y,dx=1) 
print np.trapz(y1,dx=1) 
print simps(y1,dx=1) 

아래의 예를 들어 다음은

12.0 
12.0 
20.0 
20.0 

를 얻을 그러나 그들은 15와 25은 각각 yeild하지 않겠습니까? 그것은 작은 한계 사이에 그것 같이 보인다?

+0

왜 그들은 각각 15와 25를 산출해야합니까? –

+0

파이썬 스크립트는 내가 기대 한 바가 아닌 다른 일을하기 때문에 그렇지 않을 수도 있습니다. 하지만 내가 원했던 것은이 지점 아래의 전체 영역을 얻는 것이 었습니다. 만약 당신이 15와 25를 얻을 수 있다면 수치입니다. – Atamsih

답변

1

당신은 암시 적으로 x = [0, 1, 2, 3, 4]을 가지고 있습니다. 프로그래밍 거의 모든 곳에서 모든 것이 0으로 시작한다는 것을 기억하십시오. 또한 일반적으로 상한선은 포괄적이지 않습니다.

verticle (0,0), (0,1), (4,0) 및 (4,1)에 꼭지점이있는 삼각형을 더한 사각형을 의미하는 y의 경우, 5) 및 (4,1). 사각형의 면적은 4 * 1 = 4이며 삼각형 4 * 4/2 = 8은 12의 면적을 갖습니다.

y1의 경우 사각형 (0,0), (0,5) , (4,0), (4,5)로 나누어서 20과 면적을 나타냅니다.

+0

그래,이게 내가 의심 한 것이다. 상한값을 포함하고 0을 생략하려면 어떻게합니까? 다른 스크립트에서 많은 수의 숫자에 대해이 작업을 수행하고 있습니다. – Atamsih

+0

'x = [1,2,3,4,5]'를 정의하고'np.trapz (y, x)'와 같은 함수에 넘겨 줄 수 있습니다. –

+0

이것을 시도하면 이전과 같은 결과를 얻을 수 있습니다. y와 y1 모두 – Atamsih

관련 문제