Error in fmincon: infinite loop?
1 view (last 30 days)
Show older comments
I minimize a function with fmincon. Just a nice bounded smooth function with bounded support.... But.... for some initial values, fmincon just refuses to give an answer! It seems to be stuck in some infinite loop.... What is happening?? (I use Matlab version R2013a).
clc; close all; clear all;
%define function
data = [ 8.6000 1.0000
18.2000 1.0000
6.8000 1.0000
17.7000 0
12.2000 1.0000];
pricedata = data(:,1);demanddata = data(:,2);
mu = @(price, theta, beta0, beta1) ((1 ./ (1 + exp(-ones(max(size(price)),1) * beta0' - price * beta1'))) * theta);
minusloglikelihood = @(x) - demanddata'* log(mu(pricedata, [x(5);1-x(5)], x(1:2), x(3: 4))) - (1-demanddata)'* log(1-mu(pricedata, [x(5); 1-x(5)],x(1:2), x(3: 4)));
%optimize for different starting values
options = optimoptions('fmincon','Display', 'off', 'Algorithm','active-set');
%For this starting value I get an answer
x0 = [10.5; 10.5; -1.05;-1.05; 0.705]
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = fmincon( minusloglikelihood, x0, [],[],[],[],[1;1;-2;-2;0],[20;20;-0.1;-0.1;1],[],options)
%For this starting value I don't get an answer
x0 = [10.5; 10.5; -1.05;-1.05; 0.706]
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = fmincon( minusloglikelihood, x0, [],[],[],[],[1;1;-2;-2;0],[20;20;-0.1;-0.1;1],[],options)
0 Comments
Answers (1)
Alan Weiss
on 13 Oct 2014
I suggest that you set iterative display instead of turning the display off, and I also suggest that you use the interior-point algorithm (or sqp) instead of active-set.
Alan Weiss
MATLAB mathematical toolbox documentation
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!