dontrun statements added to mxRun() call in Rd documentation.
[openmx:openmx.git] / man / mxConstraint.Rd
1 \name{mxConstraint}
2 \alias{mxConstraint}
3
4 \title{Function To Create an MxConstraint Object}
5
6 \description{
7 This function creates a new \link{MxConstraint} object.
8 }
9
10 \usage{
11 mxConstraint(alg1, relation, alg2, name = NA)
12 }
13
14 \arguments{
15 \item{alg1}{A character string indicating the name of an \link{MxAlgebra} or \link{MxMatrix} object, whose relationship to the object specified in the 'alg2' argument is constrained.}
16 \item{relation}{A character string indicating the relation between 'alg1' and 'alg2'. Must be either "<", "=", or ">".}
17 \item{alg2}{A character string indicating the name of an \link{MxAlgebra} or \link{MxMatrix} object, whose relationship to the object specified in the 'alg1' argument is constrained.}   
18 \item{name}{An optional character string indicating the name of this object.}
19 }
20
21 \details{
22 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 relationships "<", "=" and ">" are supported. 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.
23
24 The mxConstraint function may 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} may be constrained to equality by giving them the same name in their respective 'spec' matrices.
25 }
26
27 \value{
28 Returns an \link{MxConstraint} object. If used as an argument in an \link{MxModel} object, the objects referenced in the 'alg1' and 'alg2' arguments must also be included prior to optimization.
29 }
30
31 \references{
32 The OpenMx User's guide can be found at http://openmx.psyc.virginia.edu/documentation.
33 }
34
35 \seealso{
36 \link{MxConstraint} for the S4 class created by mxConstraint. \link{MxAlgebra} and \link{MxMatrix} for objects which may be entered as arguments in the 'alg' and 'alg2' arguments, and \link{mxAlgebra} and \link{mxMatrix} for the functions that create them. More information about the OpenMx package may be found \link[=OpenMx]{here}. 
37 }
38
39 \examples{
40 #Create a constraint between MxMatrices 'A' and 'B'
41 constraint <- mxConstraint('A', '=', 'B', name = 'constraint')
42
43 # Constrain a matrix of free parameters 'K' to be equal to matrix 'limit'
44 K <- mxMatrix(type="Full", nrow=2, ncol=2, free=TRUE, name="K")
45 limit <- mxMatrix(type="Full", nrow=2, ncol=2, free=FALSE,name="limit", values=1:4)
46
47 model<- mxModel("con_test", K,limit, 
48         mxConstraint("K", "=", "limit"), 
49         mxAlgebra(min(K), name="minK"), 
50         mxAlgebraObjective("minK")
51 )
52 \dontrun{
53 fit <- mxRun(model)
54 fit@matrices$K@values
55 }
56 #      [,1] [,2]
57 # [1,]    1    3
58 # [2,]    2    4
59
60 }