私はPythonでいくつかの作業を行いましたが、scipy
. ライブラリのメソッドを使用してinterpolate
、一連のデータを近似する関数を考え出そうとしています。
開始するためにいくつかの例を調べたところ、Python(x,y) で動作する以下のサンプル コードを取得できました。
import numpy as np
from scipy.interpolate import interp1d, Rbf
import pylab as P
# show the plot (empty for now)
P.clf()
P.show()
# generate random input data
original_data = np.linspace(0, 1, 10)
# random noise to be added to the data
noise = (np.random.random(10)*2 - 1) * 1e-1
# calculate f(x)=sin(2*PI*x)+noise
f_original_data = np.sin(2 * np.pi * original_data) + noise
# create interpolator
rbf_interp = Rbf(original_data, f_original_data, function='gaussian')
# Create new sample data (for input), calculate f(x)
#using different interpolation methods
new_sample_data = np.linspace(0, 1, 50)
rbf_new_sample_data = rbf_interp(new_sample_data)
# draw all results to compare
P.plot(original_data, f_original_data, 'o', ms=6, label='f_original_data')
P.plot(new_sample_data, rbf_new_sample_data, label='Rbf interp')
P.legend()
プロットは次のように表示されます。
Rbf
さて、 によって作成された補間関数(つまり として作成されたメソッド)を表す多項式を取得する方法はありますrbf_interp
か?
または、これが で不可能な場合はRbf
、別の補間方法、別のライブラリ、または別のツールを使用した提案も歓迎します。