2012-06-21 4 views
7

NumPy/SciPy을 사용하여 벡터 값 함수를 보간하는 방법이 있습니까?NumPy/SciPy를 사용한 벡터 값 함수 보간

스칼라 값 함수에서 작동하는 많은 오퍼링이 있습니다. 그 중 하나를 사용하여 벡터의 각 구성 요소를 개별적으로 추정 할 수 있지만 더 효율적으로 수행 할 수있는 방법이 있습니까?

좀 더 자세히 설명하면 함수는 f(x) = V이고, x은 스칼라이고 V은 벡터입니다. 나는 또한 xs과 그에 해당하는 Vs의 콜렉션을 가지고있다. 이를 보완하고 임의의 V을 추정하기 위해이 값을 사용하고 싶습니다. x.

답변

5

보간 함수 scipy.interpolate.interp1d도 보간법의 벡터 값 데이터에서 작동합니다 (벡터 값을 가진 데이터가 아닐지라도). 따라서 x이 스칼라 인 경우에는 직접 사용할 수 있습니다.

>>> from scipy.interpolate import interp1d 
>>> x = np.linspace(0, 10, 10) 
>>> y = np.array([np.exp(-x/3.0), 2*x]) 
>>> f = interp1d(x, y) 
>>> f(2) 
array([ 0.51950421, 4.  ]) 
>>> np.array([np.exp(-2/3.0), 2*2]) 
array([ 0.51341712, 4.  ]) 

주 2 즉 인수 벡터 x 아닌,이 예에서는 y의 첫 번째 구성 요소 따라서 보간 에러 :

다음 코드 the scipy documentation에 주어진 예에 약간의 확장이다.

+0

매력처럼 작동합니다. 감사합니다. – ktdrv