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 [4]:
f=np.sin(x)
f
Out[4]:
In [5]:
plt.plot(x,f,marker='o')
plt.xlabel('x')
plt.ylabel('f(x)');
In [20]:
from scipy.interpolate import interp1d
In [12]:
x=np.linspace(0,4*np.pi,10)
f=np.sin(x)
In [22]:
sin_approx = interp1d(x, f, kind='cubic')
In [26]:
newx = np.linspace(0,4*np.pi,100)
newf = sin_approx(newx)
In [28]:
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 [29]:
plt.plot(newx, np.abs(np.sin(newx)-sin_approx(newx)))
plt.xlabel('x')
plt.ylabel('Absolute error');
In [38]:
x = 4*np.pi*np.random.rand(15)
f = np.sin(x)
In [39]:
sin_approx = interp1d(x, f, kind='cubic')
In [40]:
newx = np.linspace(np.min(x), np.max(x),100)
newf = sin_approx(newx)
In [41]:
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 [42]:
plt.plot(newx, np.abs(np.sin(newx)-sin_approx(newx)))
plt.xlabel('x')
plt.ylabel('Absolute error');
In [44]:
from scipy.interpolate import interp2d
In [47]:
def wave2d(x, y):
return np.sin(2*np.pi*x)*np.sin(3*np.pi*y)
In [49]:
x = np.linspace(0.0,1.0,10)
y = np.linspace(0.0,1.0,10)
In [50]:
X, Y = np.meshgrid(x,y)
Z = wave2d(X,Y)
In [51]:
plt.pcolor(X, Y, Z)
plt.colorbar();
plt.scatter(X, Y);
plt.xlim(0,1)
plt.ylim(0,1)
plt.xlabel('x')
plt.ylabel('y');
In [ ]: