Evaluate piecewise polynomial

`v = ppval(pp,xx)`

`v = ppval(pp,xx)`

returns the value of the
piecewise polynomial *f*, contained in `pp`

,
at the entries of `xx`

. You can construct `pp`

using
the functions `pchip`

, `spline`

, or the spline utility `mkpp`

.

`v`

is obtained by replacing each entry of `xx`

by
the value of *f* there. If *f* is
scalar-valued, `v`

is of the same size as `xx`

. `xx`

may
be N-dimensional.

If `pp`

was constructed by `pchip`

, `spline`

,
or `mkpp`

using the orientation of non-scalar function
values specified for those functions, then:

If `f`

is `[D1,..,Dr]`

-valued,
and `xx`

is a vector of length `N`

,
then `V`

has size `[D1,...,Dr, N]`

,
with `V(:,...,:,J)`

the value of `f`

at `xx(J)`

.

If `f`

is `[D1,..,Dr]`

-valued,
and `xx`

has size `[N1,...,Ns]`

,
then `V`

has size `[D1,...,Dr, N1,...,Ns]`

,
with `V(:,...,:, J1,...,Js)`

the value of `f`

at `xx(J1,...,Js)`

.

Compare the result of integrating *cos*(*x*)
between 0 and 10 to the result of integrating a piece-wise polynomial
approximation of the same function.

a = 0; b = 10; int1 = integral(@cos,a,b) int1 = -0.5440

Create a piece-wise polynomial approximation of *cos*(*x*)
and integrate over the same interval.

x = a:b; y = cos(x); pp = spline(x,y); int2 = integral(@(x)ppval(pp,x),a,b) int2 = -0.5485

Was this topic helpful?