insert_knot#
- BSpline.insert_knot(x, m=1)[source]#
- Insert a new knot at x of multiplicity m. - Given the knots and coefficients of a B-spline representation, create a new B-spline with a knot inserted m times at point x. - Parameters:
- xfloat
- The position of the new knot 
- mint, optional
- The number of times to insert the given knot (its multiplicity). Default is 1. 
 
- Returns:
- splBSpline object
- A new BSpline object with the new knot inserted. 
 
 - See also - Notes - Based on algorithms from [1] and [2]. - In case of a periodic spline ( - self.extrapolate == "periodic") there must be either at least k interior knots t(j) satisfying- t(k+1)<t(j)<=xor at least k interior knots t(j) satisfying- x<=t(j)<t(n-k).- This routine is functionally equivalent to - scipy.interpolate.insert.- Added in version 1.13. - References [1]- W. Boehm, “Inserting new knots into b-spline curves.”, Computer Aided Design, 12, p.199-201, 1980. DOI:10.1016/0010-4485(80)90154-2. [2]- P. Dierckx, “Curve and surface fitting with splines, Monographs on Numerical Analysis”, Oxford University Press, 1993. - Examples - You can insert knots into a B-spline: - >>> import numpy as np >>> from scipy.interpolate import BSpline, make_interp_spline >>> x = np.linspace(0, 10, 5) >>> y = np.sin(x) >>> spl = make_interp_spline(x, y, k=3) >>> spl.t array([ 0., 0., 0., 0., 5., 10., 10., 10., 10.]) - Insert a single knot - >>> spl_1 = spl.insert_knot(3) >>> spl_1.t array([ 0., 0., 0., 0., 3., 5., 10., 10., 10., 10.]) - Insert a multiple knot - >>> spl_2 = spl.insert_knot(8, m=3) >>> spl_2.t array([ 0., 0., 0., 0., 5., 8., 8., 8., 10., 10., 10., 10.])