FMINSEARCHBND: FMINSEARCH, but with bound constraints by transformation usage: x=FMINSEARCHBND(fun,x0) usage: x=FMINSEARCHBND(fun,x0,LB) usage: x=FMINSEARCHBND(fun,x0,LB,UB) usage: x=FMINSEARCHBND(fun,x0,LB,UB,options) usage: x=FMINSEARCHBND(fun,x0,LB,UB,options,p1,p2,...) usage: [x,fval,exitflag,output]=FMINSEARCHBND(fun,x0,...) arguments: fun, x0, options - see the help for FMINSEARCH LB - lower bound vector or array, must be the same size as x0 If no lower bounds exist for one of the variables, then supply -inf for that variable. If no lower bounds at all, then LB may be left empty. Variables may be fixed in value by setting the corresponding lower and upper bounds to exactly the same value. UB - upper bound vector or array, must be the same size as x0 If no upper bounds exist for one of the variables, then supply +inf for that variable. If no upper bounds at all, then UB may be left empty. Variables may be fixed in value by setting the corresponding lower and upper bounds to exactly the same value. Notes: If options is supplied, then TolX will apply to the transformed variables. All other FMINSEARCH parameters should be unaffected. Variables which are constrained by both a lower and an upper bound will use a sin transformation. Those constrained by only a lower or an upper bound will use a quadratic transformation, and unconstrained variables will be left alone. Variables may be fixed by setting their respective bounds equal. In this case, the problem will be reduced in size for FMINSEARCH. The bounds are inclusive inequalities, which admit the boundary values themselves, but will not permit ANY function evaluations outside the bounds. These constraints are strictly followed. If your problem has an EXCLUSIVE (strict) constraint which will not admit evaluation at the bound itself, then you must provide a slightly offset bound. An example of this is a function which contains the log of one of its parameters. If you constrain the variable to have a lower bound of zero, then FMINSEARCHBND may try to evaluate the function exactly at zero. Example usage: rosen = @(x) (1-x(1)).^2 + 105*(x(2)-x(1).^2).^2; fminsearch(rosen,[3 3]) % unconstrained ans = 1.0000 1.0000 fminsearchbnd(rosen,[3 3],[2 2],[]) % constrained ans = 2.0000 4.0000 See test_main.m for other examples of use. See also: fminsearch, fminspleas Author: John D'Errico E-mail: woodchips@rochester.rr.com Release: 4 Release date: 7/23/06