"Ravi" wrote in message <firstname.lastname@example.org>... > I am trying to solve the following optimization problem > > min_x w^Tx +log(1-||x||^2). > > I invoke fminunc to solve this optimization problem. I provide gradient information also, and start at the all 0's vector. However the solution that is being returned to me ,x*, has norm much larger than 1. > > The only way I know to resolve this issue is by using fmincon. In this case I provide the same objective, and also provide the non-linear constraint ||x||\leq 1. The solution returned by fmincon is inside the ball, but the time taken by fmincon is much much larger than fminunc. So is there a way that I can use fminunc and still derive valid solutions? Perhaps if there is a way to capture the iterates generated by fminunc, then I may use the last iterate generated by fminunc that is still within the ball. But, then I do not know how to capture the iterates generated by running fminunc. > > Any help will be appreciated.
Your problem does not have a solution since log(1-||x||^2) -> -oo as ||x||->1.