In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
In [2]:
x= np.linspace(0,4*np.pi,10)
x
Out[2]:
In [3]:
f=np.sin(x)
f
Out[3]:
In [4]:
plt.plot(x,f,marker='o')
plt.xlabel('x')
plt.ylabel('f(x)');
In [5]:
from scipy.interpolate import interp1d
In [6]:
x=np.linspace(0,4*np.pi,10)
f=np.sin(x)
In [10]:
sin_approx=interp1d(x,f,kind='cubic')
In [11]:
newx=np.linspace(0,4*np.pi,100)
newf=sin_approx(newx)
In [12]:
plt.plot(x,f,marker='o',linestyle='',label='original data')
plt.plot(newx,newf,marker='.',label='interpolated')
plt.legend();
plt.xlabel('x')
plt.ylabel('f(x)');
In [14]:
plt.plot(newx,np.abs(np.sin(newx)-sin_approx(newx)))
plt.xlabel('x')
plt.ylabel('Absolute error');
In [15]:
x=4*np.pi*np.random.rand(15)
f=np.sin(x)
In [16]:
sin_approx=interp1d(x,f,kind='cubic')
In [19]:
newx=np.linspace(np.min(x),np.max(x),100)
newf=sin_approx(newx)
In [20]:
plt.plot(x,f,marker='o',linestyle='',label='original data')
plt.plot(newx,newf,marker='.',label='interpolated');
plt.legend();
plt.xlabel('x')
plt.ylabel('f(x)');
In [21]:
plt.plot(newx,np.abs(np.sin(newx)-sin_approx(newx)))
plt.xlabel('x')
plt.ylabel('Absolute error');
In [ ]: