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