New break distribution
newknots = newknt(f,newl)
newknt(f)
[...,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
spap2(newknt(sp),k,x,y);
For another example, see Solving a Nonlinear ODE with a Boundary Layer by Collocation.
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