# B3spline

Jump to navigation
Jump to search

### Purpose

Univariate spline fit and prediction.

### Synopsis

- modl = b3spline(x,y,t,
*options*); - pred = b3spline(x,modl,
*options*); - valid = b3spline(x,y,modl,
*options*);

### Description

Curve fitting using second order splines where

`yi = f(xi) for i=1,...,M.`

See (options.algorithm) for more information.

#### Inputs

**x**=*M*x1 vector of independent variable values.

**y**=*M*x1 vector of corresponding dependendent variable values.

**t**= defines the number of knots or knot positions.- = 1x1 scalar integer defining the number of uniformly distributed INTERIOR knots. There will be t+2 knots positioned at:
`modl.t = linspace(min(x),max(x),t+2)';` - =
*K*x1 vector defining manually placed knot positions, where:`modl.t = sort(t);`

- = 1x1 scalar integer defining the number of uniformly distributed INTERIOR knots. There will be t+2 knots positioned at:

Note that knot positions need not be uniform, and that t(1) can be <min(x) and t(K) can be >max(x).

Note that knot positions must be such that there are at least 3 unique data points between each knot: `t _{k}, t_{k+1} for k = 1,...,K.`

#### Outputs

**modl**= standard model structure containing the spline model (See Standard Model Structure).

**pred**= structure array with predictions.

**valid**= structure array with predictions.

### Options

*options* = a structure array with the following fields:

**display**: [ {'on'} | 'off' ] level of display to command window.**plots**: [ {'final'} | 'none' ] governs level of plotting. If 'final' and calibrating a model, the plot shows plot(xi,yi) and plot(xi,f(xi),'-') with knots.**algorithm**: [ {'b3spline'} | 'b3_0' | 'b3_01' ] fitting algorithm- '
**b3_0'**: is the same as 'b3spline' but also constrains the ends to 0: f{1,2}(t1) = 0 and f{K-1,K}(tK) = 0. - '
**b3_01':**is 'b3_0' but also constrains the derivatives at the ends to 0: f'{1,2}(t1) = 0 and f'{K-1,K}(tK) = 0. **'b3spline**: fits quadradic polynomials f{k,k+1} to the data between knots tk, k=1,...,K, subject to:

- '

- f{k,k+1}(tk+1) = f{k+1,k+2}(tk+1) and
- f'{k,k+1}(tk+1) = f'{k+1,k+2}(tk+1) for k=1,...,K-1.

The default options can be retreived using: options = baseline('options');.