2012-06-21 15 views
7

NumPy/SciPyを使用してベクトル値関数を補間する方法はありますか?NumPy/SciPyを使用したベクトル値関数補間

スカラー値関数を扱う製品はたくさんありますが、そのうちの1つを使用してベクトルの各コンポーネントを別々に見積もることができますが、効率的に行う方法はありますか?

具体的には、関数f(x) = Vがあります。xはスカラー、Vはベクトルです。私はxsとそれに対応するVsのコレクションも持っています。補間に使用してVを任意のxとして使用したいと思います。

答えて

5

補間関数scipy.interpolate.interp1dは、補間関数のベクトル値データ(ベクトル値の引数データではありません)でも機能します。したがって、xがスカラーである限り、直接使用することができます。

次のコードは、the scipy documentationで与えられた例のわずかな拡張である:

>>> 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は、この例ではy中の第1成分のためにこのように補間誤差引数ベクトルx、でないこと。

+0

魅力のように動作します、ありがとう! – ktdrv

関連する問題