New break distribution


newknots = newknt(f,newl)
[...,distfn] = newknt(...)


newknots = newknt(f,newl) returns the knot sequence whose interior knots cut the basic interval of f into newl pieces, in such a way that a certain piecewise linear monotone function related to the high derivative of f is equidistributed.

The intent is to choose a knot sequence suitable to the fine approximation of a function g whose rough approximation in f is assumed to contain enough information about g to make this feasible.

newknt(f) uses for newl its default value, namely the number of polynomial pieces in f.

[...,distfn] = newknt(...) also returns, in distfn, the ppform of that piecewise linear monotone function being equidistributed.


If the error in the least-squares approximation sp to some data x,y by a spline of order k seems uneven, you might try for a more equitable distribution of knots by using


For another example, see the last part of the example "Solving an ODE by Collocation".

More About

expand all


This is the Fortran routine NEWNOT in PGS. With k the order of the piecewise-polynomial function f in pp, the function |Dkf| is approximated by a piecewise constant function obtained by local, discrete, differentiation of the variation of Dk–1f. The new break sequence is chosen to subdivide the basic interval of the piecewise-polynomial f in such a way that

newknots(i)newknots(i+1)|Dkf|1/k=const, i=k:k+newl1

Was this topic helpful?