Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: fminunc + transformation
Replies: 5   Last Post: Apr 12, 2013 1:37 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Alan Weiss

Posts: 1,264
Registered: 11/27/08
Re: fminunc + transformation
Posted: Apr 3, 2013 1:58 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 3/30/2013 5:26 PM, Saad wrote:
> Dear all,
>
> I am replicating a paper who recommends using fminunc to do a
> "constrained" optimization through a transformation. I have tried to
> use directly fmincon (with different algorithms) but the function
> doesnt optimize, thats the reason I would like to follow the paper
> advice and use a transformation as follows:
>
> C_bar=lamda*(exp(C)/1+ exp(C)) where lamda is a constant, C is the
> unconstrained variable and C_bar is the constrained variable. I would
> really appreciate if you could show me how I could use the
> transformation in matlab. Do I have to create a seperate function? How
> can I link it to the optimizer please?
>
> Here is my code
>
> C=[1; 1; 1 ; 1; 1; 1; 1; 1; 1];
> options=optimset('Diagnostics','on','Display','iter','TolX',0.001,'TolFun',0.001,'LargeScale','off','HessUpdate','bfgs');
>
> [beta,fval,exitflag,output,grad,hessian] =fminunc(@mll,C,options)
>
> Thanks a lot for your help
>
> Best Regards
>
> S


It looks to me as if C_bar is a multidimensional variable constrained to
be between 0 and 1. Is that right?

You can certainly include this transformation in a MATLAB statement:

C_bar = lamda.*(exp(C)./(1+exp(C));

The ./ and .* statements mean componentwise division and multiplication.

However, I think you could avoid this complicated and (it seems to me)
fragile transformation by simply setting bounds on fmincon and using the
interior-point or sqp algorithms, which respect bounds.
http://www.mathworks.com/help/optim/ug/writing-constraints.html#br9p_ry

Good luck,

Alan Weiss
MATLAB mathematical toolbox documentation



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.