Warning of fmincon in algorithm options

1 回表示 (過去 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!

製品

Community Treasure Hunt

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

Start Hunting!

Translated by