newknt
New break distribution
Syntax
newknots = newknt(f,newl)
newknt(f)
[...,distfn] = newknt(...)
Description
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.
Examples
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.
Algorithms
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