Warning of fmincon in algorithm options

조회 수: 7 (최근 30일)
Stanley Cheng
Stanley Cheng 2013년 12월 11일
댓글: Stanley Cheng 2013년 12월 12일
Hi everyone,
These days i am using the fmincon function to get the value of four unknowns from three equations. the objective function is to minimize the square sum of the three equations. However, when I run the codes, Matlab gives me the warning in the command window as
because i don't know how to supply the gradient in the objective function,thereby, I change the algorithm to "active-set". However, matlab still gives me totally the same warning in the command window. Even other algorithms of fmincon like 'interior-point' and 'sqp' also give me the same warning! I do not know why...
Could you give me some ways to deal with that ? Thanks very much!

답변 (2개)

Matt J
Matt J 2013년 12월 11일
the objective function is to minimize the square sum of the three equations
Sounds like you should be using FSOLVE rather than FMINCON. Are there any constraints that you haven't mentioned?
As for the warning, you probably have a bug in the code you think is selecting a different algorithm. We would need to see it, to have a better idea.
  댓글 수: 7
Matt J
Matt J 2013년 12월 12일
But because the equations are under-determined, it probably means you have a continuum of solutions. That means the solution you get will be unstable and can vary significantly if you run the code on different machines/processors or if your input data undergoes small changes or noise corruption.
Stanley Cheng
Stanley Cheng 2013년 12월 12일
yes, the small change of the input can lead to large variations in the output. But the answers are still acceptable in the physical meaning.
i think different ideas are needed in future, e.g a more comprehensive measurement of the object is required to get a more complete data, so optimization tool in matlab is not required, just to solve the equations with the same length of the unknowns in them, i.e the equations is not under or over determined.

댓글을 달려면 로그인하십시오.


Stanley Cheng
Stanley Cheng 2013년 12월 12일
I solved it! the option is defined but i forgot to call it !
Then opts1=optimset('MaxFunEvals',30000,'MaxIter',30000,'TolFun',1e-8,'Display','off','Algorithm','active-set');
fmincon(@incisornew,A0,[],[],[],[],lb,ub,[],opts1)
so opts1 is called in fmincon(), now no warning !
Thanks for your help!

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by