b3spline
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 = Mx1 vector of independent variable values.
y = Mx1 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)';
= Kx1 vector defining
manually placed knot positions,
where modl.t = sort(t);
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: tk,tk+1 for k=1,...,K.
OUTPUTS:
modl = standard model structure containing the
spline model (See MODELSTRUCT).
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
'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.
'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.
order: positive integer for polynomial order
{default = 1}.
The default options can be retreived using: options = baseline('options');.
See Also