Main Content

The ppform

Introduction to ppform

A univariate piecewise polynomial f is specified by its break sequence breaks and the coefficient array coefs of the local power form (see equation in Definition of ppform) of its polynomial pieces; see Multivariate Tensor Product Splines for a discussion of multivariate piecewise-polynomials. The coefficients may be (column-)vectors, matrices, even ND-arrays. For simplicity, the present discussion deals only with the case when the coefficients are scalars.

The break sequence is assumed to be strictly increasing,

< breaks(2) < ... < breaks(l+1) 

with l the number of polynomial pieces that make up f.

While these polynomials may be of varying degrees, they are all recorded as polynomials of the same order k, i.e., the coefficient array coefs is of size [l,k], with coefs(j,:) containing the k coefficients in the local power form for the jth polynomial piece, from the highest to the lowest power; see equation in Definition of ppform.

Definition of ppform

The items breaks, coefs, l, and k, make up the ppform of f, along with the dimension d of its coefficients; usually d equals 1. The basic interval of this form is the interval [breaks(1) .. breaks(l+1)]. It is the default interval over which a function in ppform is plotted by the plot command fnplt.

In these terms, the precise description of the piecewise-polynomial f is

f(t) = polyval(coefs(j,:), t - breaks(j)) (1)

for breaks(j)≤t<breaks(j+1).

Here, polyval(a,x) is the MATLAB® function; it returns the number


This defines f(t) only for t in the half-open interval [breaks(1)..breaks(l+1)]. For any other t, f(t) is defined by


i.e., by extending the first, respectively last, polynomial piece. In this way, a function in ppform has possible jumps, in its value and/or its derivatives, only across the interior breaks, breaks(2:l). The end breaks, breaks([1,l+1]), mainly serve to define the basic interval of the ppform.

Related Topics