\HeaderA{mono.con}{Monotonicity constraints for a cubic regression spline}{mono.con}
\keyword{models}{mono.con}
\keyword{smooth}{mono.con}
\keyword{regression}{mono.con}
\begin{Description}\relax
Finds linear constraints sufficient for monotonicity (and
optionally upper and/or lower boundedness) of a cubic regression
spline. The basis representation assumed is that given by the
\code{gam}, \code{"cr"} basis: that is the spline has a set of knots,
which have fixed x values, but the y values of which constitute the
parameters of the spline.
\end{Description}
\begin{Usage}
\begin{verbatim}
mono.con(x,up=TRUE,lower=NA,upper=NA)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] The array of knot locations.
\item[\code{up}] If \code{TRUE} then the constraints imply increase, if
\code{FALSE} then decrease. 
\item[\code{lower}] This specifies the lower bound on the spline unless it is
\code{NA} in which case no lower bound is imposed.
\item[\code{upper}] This specifies the upper bound on the spline unless it is
\code{NA} in which case no upper bound is imposed.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Consider the natural cubic spline passing through the points:
\eqn{ \{x_i,p_i:i=1 \ldots n \} }{(x_i,p_i), i=1..n}. Then it is possible
to find a relatively small set of linear constraints on \eqn{ \bf p}{p}
sufficient to ensure monotonicity (and bounds if required):
\eqn{ {\bf Ap}\ge{\bf b} }{Ap>=b}. Details are given in Wood (1994).
This function returns a list containing \code{A} and \code{b}.
\end{Details}
\begin{Value}
The function returns a list containing constraint matrix
\code{A} and constraint vector \code{b}.
\end{Value}
\begin{Author}\relax
Simon N. Wood \email{simon.wood@r-project.org}
\end{Author}
\begin{References}\relax
Gill, P.E., Murray, W. and Wright, M.H. (1981) Practical Optimization. Academic
Press, London. 

Wood, S.N. (1994) Monotonic smoothing splines fitted by cross validation SIAM
Journal on Scientific Computing 15(5):1126-1133


\url{http://www.maths.bath.ac.uk/~sw283/}
\end{References}
\begin{SeeAlso}\relax
\code{\LinkA{mgcv}{mgcv} } \code{\LinkA{pcls}{pcls}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
## see ?pcls
\end{ExampleCode}
\end{Examples}

