matlab2012a vs matlab20111b. Why does the latter produces an error message?

2 views (last 30 days)
Dear all,
I use matlab 2012a and matlab 2011b
I have constructed a code and whenever I run it in matlab 2012a everything runs normal Yet, whenever I run it in matlab2011b I obtain the following error which is related to the fminunc function
??? Error using ==> roots at 28
Input to ROOTS must not contain NaN or
Inf.
Error in ==>
lineSearch>globalMinimizerOfPolyInInterval
at 304
stationaryPoint = roots([3*coeff(1)
2*coeff(2) coeff(3)]);
Error in ==>
lineSearch>pickAlphaWithinInterval at 279
z =
globalMinimizerOfPolyInInterval(zlb,zub,coeff);
Error in ==> lineSearch>sectioningPhase at
193
alpha =
pickAlphaWithinInterval(brcktEndpntA,brcktEndpntB,a,b,f_a,fPrime_a,f_b,fPrime_b);
Error in ==> lineSearch at 55
[alpha,f_alpha,grad,exitflag,funcCount]
= sectioningPhase(funfcn, ...
Error in ==> fminusub at 208
[alpha,f,grad,exitflagLnSrch,funcCountLnSrch]
= ...
Error in ==> fminunc at 376
[x,FVAL,GRAD,HESSIAN,EXITFLAG,OUTPUT] =
fminusub(funfcn,x, ...
Error in ==> testxa2 at 252
[xxx,fval,exitflag,output,gradient,H]=fminunc('CES_mode7cutDCsvk',x00,options,...
Why is this happening? Do I neeed to update this function within matlab2011b?
Regards,

Accepted Answer

Seth DeLand
Seth DeLand on 22 Aug 2012
I think the cause here is that fminunc was updated in R2012a to attempt to recover when the objective function returns NaN or Inf: http://www.mathworks.com/help/toolbox/optim/rn/bs86_xz.html#bs87ab0
My guess is that at some point your objective function 'CES_mode7cutDCsvk' is returning a value of Inf or NaN. In 12a fminunc attempts to recover from this, but in 11b it just causes an error.
If you need to use 11b, check out this thread for some things you could try: http://www.mathworks.com/matlabcentral/newsreader/view_thread/270387
Of course, if you can use 12a that would be best since the solver has been enhanced.

More Answers (0)

Categories

Find more on Scope Variables and Generate Names in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!