MATLAB 6.5 Programs and Examples accompanying

Reducing the Dimensionality of Linear Quadratic Control Problems

by Ronald Balvers and Douglas Mitchell


These programs are designed to reduce the number of state variables necessary in Riccati iteration for solving Linear Quadratic Control problems.  A MATLAB program that follows exactly the approach in the paper is RedM.m. A more practical program RedMainFin.m includes also the transformations to convert to minimal order and allows for a singular state cost matrix.  This program calls a simple Riccati iteration procedure to generate the feedback matrix and Riccati kernel for each point in finite time. Each ofthe transformations can also be called separately as functions: RedCon.m, RedObs.m, RedK.m, RedA.m Finally, the program RedMainInf.m  uses our reduction but then solves for the algebraic Riccati and feedback matrices (using either the OLRP.m program of Ljungqvist and Sargent or the DARE.m program from MATLAB’s control toolbox). The programs are designed to compare the results from alternative approaches, but can easily be amended.  Various examples are available (three examples developed for this paper, two examples from Amman and Neudecker, 1997, and two examples from Ljungqvist and Sargent, 2000).

Note that we have made little attempt to make the programs run efficiently. For instance, the simple process of finding an invertible sub matrix is quite time consuming in our programs. The programs are most useful if you want to establish the true dynamic complexity of a particular problem by using a numerical example to decide if the Riccati kernel is one so that the problem can be solved analytically, or if ooptimal controls must be found for each period in a finite horizon LQC problem with singularities.

To run the programs and examples  copy the RED directory below (save it first as a zip file) as a whole to your MATLAB work directory.  Make sure to put this directory in your path statement.


RED Directory to all Programs and Examples