import scipy.interpolate as sp import numpy import pylab # 50 points of sin(x) in [0 10] xx = numpy.linspace(0, 10, 50) yy = numpy.sin(xx) # 10 sample of sin(x) in [0 10] x = numpy.linspace(0, 10, 10) y = numpy.sin(x) # interpolation fl = sp.interp1d(x, y,kind='linear') fc = sp.interp1d(x, y,kind='cubic') # fl and fc are the interpolating functions # defined in the interval [0 10] # fl uses linear interpolation # and fc uses cubic interpolation xnew = numpy.linspace(0, 10, 50) pylab.subplot(211) # the real sin(x) function plot pylab.plot(xx, yy) pylab.legend(['sin(x)'], loc='best') pylab.subplot(212) # the interpolation pylab.plot(x, y, 'o', xnew, fl(xnew), xnew, fc(xnew)) pylab.legend(['sample', 'linear', 'cubic'], loc='lower left') pylab.show()The script will show the following figure:
Tuesday, May 17, 2011
How to interpolate a set of points
The purpose of this example is to show how to interpolate a set of points (x,y) using the funtion interp1 provided by scipy.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.