## Documentation Center |

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?