  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.
