Cleanup of mxConstraint() documentation.
[openmx:openmx.git] / man / mxConstraint.Rd
1 %
2 %   Copyright 2007-2010 The OpenMx Project
3 %
4 %   Licensed under the Apache License, Version 2.0 (the "License");
5 %   you may not use this file except in compliance with the License.
6 %   You may obtain a copy of the License at
7
8 %        http://www.apache.org/licenses/LICENSE-2.0
9
10 %   Unless required by applicable law or agreed to in writing, software
11 %   distributed under the License is distributed on an "AS IS" BASIS,
12 %   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 %   See the License for the specific language governing permissions and
14 %   limitations under the License.
15
16 \name{mxConstraint}
17 \alias{mxConstraint}
18
19 \title{Create MxConstraint Object}
20
21 \description{
22 This function creates a new \link{MxConstraint} object.
23 }
24
25 \usage{
26 mxConstraint(expression, name = NA)
27 }
28
29 \arguments{
30    \item{expression}{An R expression of matrix operators and matrix functions.}
31    \item{name}{An optional character string indicating the name of the object.}
32 }
33
34 \details{
35 The mxConstraint function defines relationships between two \link{MxAlgebra} or \link{MxMatrix} objects. They are used to affect the estimation of free parameters in the referenced objects. The constraint relation is written identically to how a \link{MxAlgebra} expression would be written.  The outermost operator in this relation must be either \sQuote{<}, \sQuote{==} or \sQuote{>}. To affect an estimation or optimization, an \link{MxConstraint} object must be included in an \link{MxModel} object with all referenced \link{MxAlgebra} and \link{MxMatrix} objects.
36
37 The mxConstraint function should not be used to constrain free parameters, either by name or by their position in an \link{MxMatrix} or \link{MxAlgebra} object. Free parameters in the same \link{MxModel} are constrained to equality by giving them the same name in their respective 'labels' matrices.
38 }
39
40 \value{
41 Returns an \link{MxConstraint} object.
42 }
43
44 \references{
45 The OpenMx User's guide can be found at http://openmx.psyc.virginia.edu/documentation.
46 }
47
48 \seealso{
49 \link{MxConstraint} for the S4 class created by mxConstraint. 
50 }
51
52 \examples{
53 #Create a constraint between MxMatrices 'A' and 'B'
54 constraint <- mxConstraint(A > B, name = 'AdominatesB')
55
56 # Constrain a matrix of free parameters 'K' to be equal to matrix 'limit'
57 K <- mxMatrix(type="Full", nrow=2, ncol=2, free=TRUE, name="K")
58 limit <- mxMatrix(type="Full", nrow=2, ncol=2, free=FALSE, name="limit", values=1:4)
59
60 model<- mxModel("con_test", K, limit, 
61         mxConstraint(K == limit, name = "Klimit_equality"), 
62         mxAlgebra(min(K), name="minK"), 
63         mxAlgebraObjective("minK")
64 )
65 \dontrun{
66 fit <- mxRun(model)
67 fit@matrices$K@values
68 }
69 #      [,1] [,2]
70 # [1,]    1    3
71 # [2,]    2    4
72
73 }