init
This commit is contained in:
53
FOTF Toolbox/fminsearchbnd/test/test_main.m
Normal file
53
FOTF Toolbox/fminsearchbnd/test/test_main.m
Normal file
@ -0,0 +1,53 @@
|
||||
%% Optimization of a simple (Rosenbrock) function, with no constraints
|
||||
% The unconstrained solution is at [1,1]
|
||||
rosen = @(x) (1-x(1)).^2 + 105*(x(2)-x(1).^2).^2;
|
||||
|
||||
% With no constraints, operation simply passes through
|
||||
% directly to fminsearch. The solution should be [1 1]
|
||||
xsol = fminsearchbnd(rosen,[3 3])
|
||||
|
||||
%% Full lower and upper bound constraints which will all be inactive
|
||||
xsol = fminsearchbnd(rosen,[3 3],[-1 -1],[4 4])
|
||||
|
||||
%% Only lower bound constraints
|
||||
xsol = fminsearchbnd(rosen,[3 3],[2 2])
|
||||
|
||||
%% Only upper bound constraints
|
||||
xsol = fminsearchbnd(rosen,[-5 -5],[],[0 0])
|
||||
|
||||
%% Dual constraints
|
||||
xsol = fminsearchbnd(rosen,[2.5 2.5],[2 2],[3 3])
|
||||
|
||||
%% Dual constraints, with an infeasible starting guess
|
||||
xsol = fminsearchbnd(rosen,[0 0],[2 2],[3 3])
|
||||
|
||||
%% Mixed constraints
|
||||
xsol = fminsearchbnd(rosen,[0 0],[2 -inf],[inf 3])
|
||||
|
||||
%% Provide your own fminsearch options
|
||||
opts = optimset('fminsearch');
|
||||
opts.Display = 'iter';
|
||||
opts.TolX = 1.e-12;
|
||||
|
||||
n = [10,5];
|
||||
H = randn(n);
|
||||
H=H'*H;
|
||||
Quadraticfun = @(x) x*H*x';
|
||||
|
||||
% Global minimizer is at [0 0 0 0 0].
|
||||
% Set all lower bound constraints, all of which will
|
||||
% be active in this test.
|
||||
LB = [.5 .5 .5 .5 .5];
|
||||
xsol = fminsearchbnd(Quadraticfun,[1 2 3 4 5],LB,[],opts)
|
||||
|
||||
%% Exactly fix one variable, constrain some others, and set a tolerance
|
||||
opts = optimset('fminsearch');
|
||||
opts.TolFun = 1.e-12;
|
||||
|
||||
LB = [-inf 2 1 -10];
|
||||
UB = [ inf inf 1 inf];
|
||||
xsol = fminsearchbnd(@(x) norm(x),[1 3 1 1],LB,UB,opts)
|
||||
|
||||
%% All the standard outputs from fminsearch are still returned
|
||||
[xsol,fval,exitflag,output] = fminsearchbnd(@(x) norm(x),[1 3 1 1],LB,UB)
|
||||
|
Reference in New Issue
Block a user