Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Cubic smoothing spline

`pp = csaps(x,y)`

`pp = csaps(x,y,p)`

`pp = csaps(x,y,p,[],w)`

`values = csaps(x,y,p,xx)`

`values = csaps(x,y,p,xx,w)`

`[___] = csaps({x1,...,xm},y,___)`

`[___,P] = csaps(___)`

For a simpler but less flexible method to generate smoothing splines, try the Curve Fitting
app or the `fit`

function.

returns the cubic smoothing spline interpolation to the given data `pp`

= csaps(`x`

,`y`

)`(x,y)`

in ppform. The value of spline *f* at data site `x(j)`

approximates the data value `y(:,j)`

for ```
j =
1:length(x)
```

.

The smoothing spline *f* minimizes

$$p\underset{\text{errormeasure}}{\underbrace{{\displaystyle \sum _{j=1}^{n}{w}_{j}}|{y}_{j}-f({x}_{j}){|}^{2}}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{1em}}+\text{\hspace{1em}}(1-p)\underset{\text{roughnessmeasure}}{\underbrace{{\displaystyle \underset{}{\overset{}{\int}}\lambda (t)}|{D}^{2}f(t){|}^{2}dt}}$$

Here, *n* is the number of entries of `x`

and the
integral is over the smallest interval containing all the entries of `x`

.
*y*_{j} and
*x*_{j} refer to the
*j*th entries of `y`

and `x`

,
respectively. *D*^{2}*f* denotes
the second derivative of the function *f*.

The default values for the error measure weights
*w*_{j} are 1. The default value
for the piecewise constant weight function *λ* in the roughness measure is the constant function 1. By deafult,
`csaps`

chooses a value for the smoothing parameter *p* based on the given data sites
`x`

.

To evaluate a smoothing spline outside its basic interval, you must first extrapolate
it. Use the command `pp = fnxtr(pp)`

to ensure that the second derivative
is zero outside the interval spanned by the data sites.

`[___] = csaps({x1,...,xm},`

provides the ppform of an `y`

,___)`m`

-variate tensor-product smoothing spline to
data on the rectangular grid described by `{x1,...,xm}`

. You can use this
syntax with any of the arguments in the previous syntaxes.

`csaps`

is an implementation of the Fortran routine
`SMOOTH`

from *PGS*.

The calculation of the smoothing spline requires solving a linear system whose coefficient
matrix has the form `p*A + (1-p)*B`

, with the matrices `A`

and `B`

depending on the data sites `x`

. The default value
of `p`

makes `p*trace(A)`

equal
`(1-p)*trace(B)`

.