MATLAB Function Reference |

**Syntax**

**Description**

```
pp = mkpp(breaks,coefs)
```

builds a piecewise polynomial `pp`

from its breaks and coefficients. `breaks`

is a vector of length `L+1`

with strictly increasing elements which represent the start and end of each of `L`

intervals. `coefs`

is an `L`

-by-`k`

matrix with each row `coefs(i,:)`

containing the coefficients of the terms, from highest to lowest exponent, of the order `k`

polynomial on the interval `[breaks(i),breaks(i+1)]`

.

```
pp = mkpp(breaks,coefs,d)
```

indicates that the piecewise polynomial `pp`

is `d`

-vector valued, i.e., the value of each of its coefficients is a vector of length `d`

. `breaks`

is an increasing vector of length `L+1`

. `coefs`

is a `d`

-by-`L`

-by-`k`

array with `coefs(r,i,:)`

containing the `k`

coefficients of the `i`

th polynomial piece of the `r`

th component of the piecewise polynomial.

Use `ppval`

to evaluate the piecwise polynomial at specific points. Use `unmkpp`

to extract details of the piecewise polynomial.

**Note.** The *order* of a polynomial tells you the number of coefficients used in its description. A *k*th order polynomial has the form

It has *k* coefficients, some of which can be 0, and maximum exponent *k-*1. So the order of a polynomial is usually one greater than its degree. For example, a cubic polynomial is of order 4.

**Examples**

The first plot shows the quadratic polynomial

shifted to the interval [-8,-4]. The second plot shows its negative

but shifted to the interval [-4,0].

The last plot shows a piecewise polynomial constructed by alternating these two quadratic pieces over four intervals. It also shows its first derivative, which was constructed after breaking the piecewise polynomial apart using `unmkpp`

.

subplot(2,2,1) cc = [-1/4 1 0]; pp1 = mkpp([-8 -4],cc); xx1 = -8:0.1:-4; plot(xx1,ppval(pp1,xx1),'k-') subplot(2,2,2) pp2 = mkpp([-4 0],-cc); xx2 = -4:0.1:0; plot(xx2,ppval(pp2,xx2),'k-') subplot(2,1,2) pp = mkpp([-8 -4 0 4 8],[cc;-cc;cc;-cc]); xx = -8:0.1:8; plot(xx,ppval(pp,xx),'k-') [breaks,coefs,l,k,d] = unmkpp(pp); dpp = mkpp(breaks,repmat(k-1:-1:1,d*l,1).*coefs(:,1:k-1),d); hold on, plot(xx,ppval(dpp,xx),'r-'), hold off

**See Also**

mkdir | mlock |