Optimal control and numerical software: an overview
  Optimal Control (OC) is the process of determining control and state trajectories for a dynamic system, over a period of time, in order to optimize a given performance index. With the increasing of variables and complexity, OC problems can no longer be solved analytically and, consequently, numerical methods are required. For this purpose, direct and indirect methods are used. Direct methods consist in the discretization of the OC problem, reducing it to a nonlinear constrained optimization problem. Indirect methods are based on the Pontryagin Maximum Principle, which in turn reduces to a boundary value problem. In order to have a more reliable solution, one can solve the same problem through different approaches. Here, as an illustrative example, an epidemiological application related to the rubella disease is solved using several software packages, such as the routine ode45 of Matlab, OC-ODE, DOTcvp toolbox, IPOPT and Snopt, showing the state of the art of numerical software for OC. 
Helena Sofia Rodrigues, M. Teresa T. Monteiro, Delfim F. M. Torres
math.OC