Ejemplo n.º 1
0
def test_bspderiv():
    numval = 10
    maxord = 10
    dx = 1e-6

    xl = np.linspace(0, 10, numval)
    xr = xl + dx
    xm = xl + dx/2
    for k in range(1, maxord):
        # Check k + 1 degree k b-splines.
        n = k + 1
        t = [0]*n + list(range(1, 10)) + [10]*n
        c = np.eye(len(t) - n)
        for j in range(n):
            msg = "k = %d, j = %d" % (k, j)
            spl = bs.BSpline(t, k, c[j])
            der = bs.bsplderiv(spl, n=1)
            res = bs.bsplval(xm, der)
            tgt = (bs.bsplval(xr, spl) - bs.bsplval(xl, spl))/dx
            assert_almost_equal(res, tgt, err_msg=msg)
Ejemplo n.º 2
0
def test_bspderiv():
    pass
    numval = 10
    maxord = 10
    dx = 1e-6

    xl = np.linspace(0, 10, numval)
    xr = xl + dx
    xm = xl + dx / 2
    for k in range(1, maxord):
        # Check k + 1 degree k b-splines.
        n = k + 1
        t = [0] * n + list(range(1, 10)) + [10] * n
        c = np.eye(len(t) - n)
        for j in range(n):
            msg = "k = %d, j = %d" % (k, j)
            tck = bs.Tck(t, c[j], k)
            dck = bs.bsplderiv(tck, n=1)
            tgt = (bs.bsplval(xr, tck) - bs.bsplval(xl, tck)) / dx
            res = bs.bsplval(xm, dck)
            assert_almost_equal(res, tgt, err_msg=msg)