필터 지우기
필터 지우기

Info

This question is locked. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

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

조회 수: 2 (최근 30일)
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
Az.Sa
Az.Sa 2023년 4월 15일
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 2023년 4월 17일
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

답변 (1개)

Walter Roberson
Walter Roberson 2023년 4월 13일
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
Torsten
Torsten 2023년 4월 14일
Then nobody will be able to help you without having access to your data and your complete code.

This question is locked.

카테고리

Help CenterFile Exchange에서 Build Automation에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by