Note
Click here to download the full example code
1-Dimensional InterpolationΒΆ
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import ndsplines import numpy as np import matplotlib.pyplot as plt from scipy import interpolate from scipy.stats import norm import itertools def gaussian(x_in): z = norm.ppf(.9995) x = z*(2*x_in-1) return norm.pdf(x) def sin(x_in): x = np.pi*(x_in-0.5) return np.sin(x) def tanh(x_in): x = 2*np.pi*(x_in-0.5) return np.tanh(x) funcs = [gaussian, sin, tanh] x = np.linspace(0, 1, 9) xx = np.linspace(-.25, 1.25, 1024) k = 3 for degree in range(0,4): for func in funcs: fvals = func(x) truef = func(xx) plt.figure() plot_sel = slice(None) plt.gca().set_prop_cycle(None) test_Bspline = interpolate.make_interp_spline(x, fvals, k=degree) splinef = test_Bspline(xx.copy(), extrapolate=True) plt.plot(xx, splinef, '--', lw=3.0, label='scipy.interpolate.make_interp_spline') test_NDBspline = ndsplines.make_interp_spline(x, fvals, degrees=degree) NDsplinef = test_NDBspline(xx.copy()) plt.plot(xx, NDsplinef, label='ndspline.make_interp_spline') plt.plot(xx, truef, 'k--', label="True " + func.__name__) plt.plot(x, fvals, 'ko') plt.title('k=%d'%degree) plt.legend(loc='best') plt.show() |
Total running time of the script: ( 0 minutes 1.878 seconds)