Witam, mam problem z generacją odpowiednich zbiorów do interpolacji. Otóż muszę wykonać interpolacje dla funkcji sin(1/x) w zakresie -pi do pi jednak już zbiór danych wejściowych nie generuje pełnego zakresu ponieważ kończy się na ~2.8 a nie 3.14... Oto kod:
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
x=[i for i in np.arange(-(np.pi),np.pi+0.4,0.4)]
y=[np.sin(1/i) for i in np.arange(-(np.pi),np.pi,0.4)]
xinterp=[i for i in np.arange(-(np.pi),np.pi+0.1,0.08)]
opcje=['linear','nearest','zero','slinear','quadratic','cubic',10]
for o in opcje:
finterp=interp1d(x,y,kind=o)
plt.plot(xinterp,finterp(xinterp), label=o)
plt.plot(x,y,'or')
plt.legend()
plt.show()
Dodam dla uściślenia że dane wejściowe mają być generowane z krokiem 0.4 natomiast interpolowane z krokiem 0.08.