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 MATLABs 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