Effacer les filtres
Effacer les filtres

Info

This question is locked. Rouvrir pour modifier ou répondre.

Error using barrier Objective function is undefined at initial point. Fmincon cannot continue.

2 vues (au cours des 30 derniers jours)
Az.Sa
Az.Sa le 13 Avr 2023
Locked: Rena Berman le 5 Juin 2024
Hi, after running my code
R=readmatrix(filename1);
R=R.';
w=readmatrix(filename2);
gamma = 2;
Aeq = ones(1,68);
beq = 1;
lb = zeros(68,1);
ub = ones(68,1);
x0=0.0147*ones(1,68);
u = @(x) 1/(1-gamma)*x.^(1-gamma);
obj = @(x)-sum(u(x*w*R));
x = fmincon(obj,x0,[],[],Aeq,beq,lb,ub);
I recived the following error
Error using barrier
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 824)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] =
barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
I run the same code before but with a lees number of data and it works perfectly. Can you please help me what is wrong with my code ?
Thanks in advance
:::: UPDATE
after my discussion with Torsten : here
I reads my data carefully and found the problem with my data
  3 commentaires
Az.Sa
Az.Sa le 15 Avr 2023
Thanks Walter. I apprecaite the time everyone spend it here to help . I did not want to mislead the reader since my data cause the problem. I tried to accept Torsten answer but I could not
Rik
Rik le 17 Avr 2023
Original question:
Error using barrier Objective function is undefined at initial point. Fmincon cannot continue.
Hi, after running my code
R=readmatrix(filename1);
R=R.';
w=readmatrix(filename2);
gamma = 2;
Aeq = ones(1,68);
beq = 1;
lb = zeros(68,1);
ub = ones(68,1);
x0=0.0147*ones(1,68);
u = @(x) 1/(1-gamma)*x.^(1-gamma);
obj = @(x)-sum(u(x*w*R));
x = fmincon(obj,x0,[],[],Aeq,beq,lb,ub);
I recived the following error
Error using barrier
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 824)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] =
barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
I run the same code before but with a lees number of data and it works perfectly. Can you please help me what is wrong with my code ?
Thanks in advance

Réponses (1)

Walter Roberson
Walter Roberson le 13 Avr 2023
Your gamma is 2. 1-gamma is -1. x.^(1-gamma) is then 1./x
But you permit x to start at 0 (your lower bound is 0). That would get you infinity or nan, either of which is going to cause your objective to fail.
Your lb needs to be greater than 0.
  8 commentaires
Torsten
Torsten le 14 Avr 2023
Then nobody will be able to help you without having access to your data and your complete code.

This question is locked.

Catégories

En savoir plus sur Build Automation dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by