Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation Python
Les fondamentaux
Voir le programme détaillé
Module « scipy.interpolate »

Fonction insert - module scipy.interpolate

Signature de la fonction insert

def insert(x, tck, m=1, per=0) 

Description

help(scipy.interpolate.insert)

Insert knots into a B-spline.

.. legacy:: function

    Specifically, we recommend constructing a `BSpline` object and using
    its ``insert_knot`` method.

Given the knots and coefficients of a B-spline representation, create a
new B-spline with a knot inserted `m` times at point `x`.
This is a wrapper around the FORTRAN routine insert of FITPACK.

Parameters
----------
x (u) : float
    A knot value at which to insert a new knot.  If `tck` was returned
    from ``splprep``, then the parameter values, u should be given.
tck : a `BSpline` instance or a tuple
    If tuple, then it is expected to be a tuple (t,c,k) containing
    the vector of knots, the B-spline coefficients, and the degree of
    the spline.
m : int, optional
    The number of times to insert the given knot (its multiplicity).
    Default is 1.
per : int, optional
    If non-zero, the input spline is considered periodic.

Returns
-------
BSpline instance or a tuple
    A new B-spline with knots t, coefficients c, and degree k.
    ``t(k+1) <= x <= t(n-k)``, where k is the degree of the spline.
    In case of a periodic spline (``per != 0``) there must be
    either at least k interior knots t(j) satisfying ``t(k+1)<t(j)<=x``
    or at least k interior knots t(j) satisfying ``x<=t(j)<t(n-k)``.
    A tuple is returned iff the input argument `tck` is a tuple, otherwise
    a BSpline object is constructed and returned.

Notes
-----
Based on algorithms from [1]_ and [2]_.

Manipulating the tck-tuples directly is not recommended. In new code,
prefer using the `BSpline` objects, in particular `BSpline.insert_knot`
method.

See Also
--------
BSpline.insert_knot

References
----------
.. [1] W. Boehm, "Inserting new knots into b-spline curves.",
    Computer Aided Design, 12, p.199-201, 1980.
.. [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.

>>> from scipy.interpolate import splrep, insert
>>> import numpy as np
>>> x = np.linspace(0, 10, 5)
>>> y = np.sin(x)
>>> tck = splrep(x, y)
>>> tck[0]
array([ 0.,  0.,  0.,  0.,  5., 10., 10., 10., 10.])

A knot is inserted:

>>> tck_inserted = insert(3, tck)
>>> tck_inserted[0]
array([ 0.,  0.,  0.,  0.,  3.,  5., 10., 10., 10., 10.])

Some knots are inserted:

>>> tck_inserted2 = insert(8, tck, m=3)
>>> tck_inserted2[0]
array([ 0.,  0.,  0.,  0.,  5.,  8.,  8.,  8., 10., 10., 10., 10.])



Vous êtes un professionnel et vous avez besoin d'une formation ? Sensibilisation à
l'Intelligence Artificielle
Voir le programme détaillé