MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

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








  • Prev by Date: Re: Regression Testing of Graphics: some questions
  • Next by Date: Re: Landau letter, Re: Mathematica as a New Approach...
  • Previous by thread: Mathematica's FindMinimum does not solve trivial optimization problems
  • Next by thread: Re: Mathematica's FindMinimum does not solve trivial optimization problems