Re: Mathematica's FindMinimum does not solve trivial optimization problems
- To: mathgroup at smc.vnet.net
- Subject: [mg128124] Re: Mathematica's FindMinimum does not solve trivial optimization problems
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Mon, 17 Sep 2012 00:23:28 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20120916072414.767026847@smc.vnet.net>
It seems strange to me to treat example (a) as a two-variable optimization problem when the constraint says this is actually a one-variable optimization. Thus:
FindMinimum[{(x - 1.0)^2 + (y - 2.0)^2 /. x -> 2.0}, {y, 1.0}]
{1., {y -> 2.}}
On Sep 16, 2012, at 3:24 AM, Vassilis <vassilios.s.vassiliadis at gmail.com> wrote:
> I am trying to solve a simple optimization problem (nonlinear constrained) derived from the finite difference (backward differences, implicit Euler) discretization of a very simple Optimal Control problem.
>
> The derived problem is essentially linear with only bilinearities in the constraints.
>
> I have tried to use FindMinimum as I have been developing code in Mathematica for very general optimal control problems, and this was a test of the solver routine.
>
> To my surprise, and despite its being advertised in the document on "Constrained Optimization" as "industrial strength interior point method" it cannot solve something that other solvers like CONOPT (which I tested via GAMS) does in milliseconds.
>
> The observations are twofold:
>
> (a). I am using version 8.0.1.0 of Mathematica and I have found that if you have a variable equated to a constant in the constraints section in FindMinimum the solver gives you a ... division by zero. Here is a sample code for this:
>
> === Begin sample code (a) ===============
=
>
> FindMinimum[{(x - 1.0)^2 + (y - 2.0)^2,
> x == 2.0}, {{x, 1.0}, {y, 1.0}}]
>
> === Output ====================
>
> FindMinimum[{(x - 1.0)^2 + (y - 2.0)^2,
> x == 2.0}, {{x, 1.0}, {y, 1.0}}]
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> Infinity::indet: Indeterminate expression ComplexInfinity+ComplexInfinity encountered. >>
>
> Power::infy: Infinite expression 1/0. encountered. >>
>
> General::stop: Further output of Power::infy will be suppressed during this calculation. >>
>
> Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. > >
>
> Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. > >
>
> General::stop: Further output of Infinity::indet will be suppressed during this calculation. >>
>
> LinearAlgebra`LAPACK`SYTRF::mindet: Input matrix contains an indeterminate entry. >>
>
> FindMinimum::conv: Interior point method fails to converge. >>
>
> === End Output =========
> =85.
---
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- Mathematica's FindMinimum does not solve trivial optimization problems
- From: Vassilis <vassilios.s.vassiliadis@gmail.com>
- Mathematica's FindMinimum does not solve trivial optimization problems