book cover




Linear systems theory is the cornerstone of control theory and a prerequisite for essentially all graduate courses in this area. It is a well-established discipline that focuses on linear differential equations from the perspective of control and estimation.

Hardcover (8"x10", 280 pages)
42 line illus, 3 tables
September 13, 2009
Language: English

ISBN-13: 9780691179575 (hardcover), 9781400890088 (E-book)

Published by Princeton University Press
Publisher's book website

Also available at


quick links



The first set of lectures (1--17) covers the key topics in linear systems theory: system representation, stability, controllability and state feedback, observability and state estimation, and realization theory. The main goal of these chapters is to provide the background needed for advanced control design techniques. Feedback linearization and the LQR problem are also
briefly introduced to increase the design component of this set of lectures. The preview of optimal LQR control facilitates the introduction of notions such as controllability and observability, but is pursued in much greater detail in the second set of lectures.

Three advanced foundational topics are covered in a second set of lectures (18--25): poles and zeros for MIMO systems, LQG/LQR control, and control design based on the $Q$ parameterization of stabilizing controllers (Q design). The main goal of these chapters is to introduce advanced supporting material for modern control design techniques. Although LQG/LQR is covered in some other linear systems books, it is generally not covered at the same level of detail (in particular the frequency domain properties of LQG/LQR, loop shaping, and loop transfer recovery). In fact, there are few textbooks in print that cover the same material, in spite of the fact that these are classical results and LQG/LQR is the most widely used form of state-space control. By covering the ARE in detail, I set the stage for H-2 and H-infinity.

In writing this book, it is assumed that the reader is familiar with linear algebra and ordinary differential equations at an undergraduate level. To profit most from this textbook, the reader would also have previously taken an undergraduate course in classical control, but these notes are basically self-contained regarding control concepts.research and also in a professional career in electrical engineering.

Organization and Style

This book was purposely designed as a textbook, and because it is not an adaptation of a reference text, the main emphasis is on presenting material in a fashion that makes it easy for students to understand. The material is organized in lectures, and it is divided so that on average each lecture can be covered in 2 hours of class time. The sequence in which the material appears was selected to emphasize continuity and motivate the need for new concepts as they are introduced.

In writing this manuscript there was a conscious effort to reduce verbosity. This is not to say that I did not attempt to motivate the concepts or discuss their significance (on the contrary), but the amount of text was kept to a minimum. Typically, discussion, remarks, and side comments are relegated to marginal notes so that the reader can easily follow the material presented without distraction and yet enjoy the benefit of comments on the notation and terminology, or be made aware that a there is a related MATLAB command.

I have also not included a chapter or appendix that summarizes background material (e.g., a section on linear algebra or nonlinear differential equations). Linear algebra is a key prerequisite to this course, and it is my experience that referring a student who is weak on linear algebra to a brief chapter on the subject is useless (and sometime even counter-productive). I do review advanced concepts (e.g., singular values, matrix norms, and the Jordan normal form), but this is done at the points in the text where these concepts are needed. I also take this approach to referring the reader to MATLAB, by introducing the commands only where the relevant concepts appear in the text.

Learning and Teaching Using This Textbook

Lectures 1--17 can be the basis for a one-quarter graduate course on linear systems theory. At the University of California at Santa Barbara I teach essentially all the material in these lectures in one quarter with about 40 hours of class time. In the interest of time, the material in the Additional Notes sections and some of the discrete-time proofs can be skipped. For a semester-long course, one could also include a selection of the advanced topics covered in the second part of the book (Lectures 18--25).

I have tailored the organization of the textbook to simplify the teaching and learning of the material. In particular, the sequence of the chapters emphasizes continuity, with each chapter appearing motivated and in logical sequence with the preceding ones. I always avoid introducing a concept in one chapter and using it again only many chapters later. It has been my experience that even if this may be economical in terms of space, it is pedagogically counterproductive. The chapters are balanced in length so that on average each can be covered in roughly 2 hours of lecture time. Not only does this greatly aid the instructor's planning, but it makes it easier for the students to review the materials taught in class.

As I have taught this material, I have noticed that some students arrive at graduate school without proper training in formal reasoning. In particular, many students come with limited understanding of the basic logical arguments behind mathematical proofs. A course in linear systems provides a superb opportunity to overcome this difficulty. To this effect, I have annotated several proofs with sidebars that explain general techniques to constructing proofs: contradiction, contraposition, the difference between necessity and sufficiency, etc. Throughout the manuscript, I have also structured the proofs to make them as intuitive as possible, rather than simply as short as possible. All mathematical derivations emphasize the aspects that give insight into the material presented and do not dwell on technical aspects of small consequence that merely bore the students. Often these technical details are relegated to sidebars or exercises.


Computational tools such as the MATLAB software environment offer a significant step forward in teaching linear systems because they allow students to solve numerical problems without being exposed to a detailed treatment of numerical computations. By systematically annotating the theoretical developments with sidebars that discuss the relevant commands available in MATLAB, this textbook helps students learn to use these tools.




By Alan J. Laub in SIAM Review, Volume 52, Issue 4, pp. 779-781. Full review text (with subscription).




Table of Contents:[pdf]

Index: [pdf]




Comments and information about typos are most welcome.



Sample Exams

  • Practice mid-term exams (roughly Chapters 1-9) [pdf1, pdf2, pdf3]
  • Practice final exams (roughly Chapters 1-17) [pdf1, pdf2, pdf3]

ATTENTION: The level of difficulty appropriate for an exam depends on numerous factors, such as the time that the students are allowed to spend solving the exams, whether the exam is open or closed-book, whether the exam will take place in class or at home, whether or not students are allowed to use software tools to solve the exam, the background of the students, etc. If you are a student taking a linear systems course and are studing for an exam, do not assume that the exams posted above are representative of the ones that you will get in your class unless your instructor tells you otherwise.


Instructors: A supplementary Solutions Manual is available for this book. It is restricted to teachers using the text in courses.

Information on how to obtain a copy is available from Princeton press solution manuals for Professors.


MATLAB scripts

Scripts related to Lecture 26 (Q Design)

Simulink diagram in Figure 26.1: augmented_closedloop.mdl

Script that generates the process matrices A,B,C,D for the Example 23.1, as well as the basic LQG/LQR controller used for the Q-design controller that appears in Figure 26.2: aircraft.m
There matrices are compatible with augmented_closedloop.mdl

Script in Section 26.4.1 used to create the sequence { Qi(s) }: makeqs.m
You'll have to adapt this script for the desired values of the variables k,m,alpha,q)

Script in Section 26.4.2 used to compute the matrices Ti(s): makets.m
You'll have to adapt this script for the desired values of the variables k,m.
This script uses the Simulink diagram in Figure 26.1 and the sequence { Qi(s) } computed using makeqs.m

Please email me if there is a particular script that appears in the book that you'd like to have. 



Bibtex entry

  author = {Jo{\~a}o P. Hespanha},
  title = {Linear Systems Theory},
  publisher = {Princeton Press},
  address = {Princeton, New Jersey},
  month = feb,
  year = 2018,
  note = {ISBN13: 9780691179575}