Matrix difference equation: Difference between revisions
imported>Telescopic99 |
(No difference)
|
Latest revision as of 19:10, 13 February 2025
Template:Short description Template:Further
A matrix difference equation is a difference equation in which the value of a vector (or sometimes, a matrix) of variables at one point in time is related to its own value at one or more previous points in time, using matrices.[1][2] The order of the equation is the maximum time gap between any two indicated values of the variable vector. For example,
is an example of a second-order matrix difference equation, in which Template:Math is an Template:Math vector of variables and Template:Math and Template:Math are Template:Math matrices. This equation is homogeneous because there is no vector constant term added to the end of the equation. The same equation might also be written as
or as
The most commonly encountered matrix difference equations are first-order.
Nonhomogeneous first-order case and the steady state
An example of a nonhomogeneous first-order matrix difference equation is
with additive constant vector Template:Math. The steady state of this system is a value Template:Math of the vector Template:Math which, if reached, would not be deviated from subsequently. Template:Math is found by setting Template:Math in the difference equation and solving for Template:Math to obtain
where Template:Math is the Template:Math identity matrix, and where it is assumed that Template:Math is invertible. Then the nonhomogeneous equation can be rewritten in homogeneous form in terms of deviations from the steady state:
Stability of the first-order case
The first-order matrix difference equation Template:Math is stable—that is, Template:Math converges asymptotically to the steady state Template:Math—if and only if all eigenvalues of the transition matrix Template:Math (whether real or complex) have an absolute value which is less than 1.
Solution of the first-order case
Assume that the equation has been put in the homogeneous form Template:Math. Then we can iterate and substitute repeatedly from the initial condition Template:Math, which is the initial value of the vector Template:Math and which must be known in order to find the solution:
and so forth, so that by mathematical induction the solution in terms of Template:Mvar is
Further, if Template:Math is diagonalizable, we can rewrite Template:Math in terms of its eigenvalues and eigenvectors, giving the solution as
where Template:Math is an Template:Math matrix whose columns are the eigenvectors of Template:Math (assuming the eigenvalues are all distinct) and Template:Math is an Template:Math diagonal matrix whose diagonal elements are the eigenvalues of Template:Math. This solution motivates the above stability result: Template:Math shrinks to the zero matrix over time if and only if the eigenvalues of Template:Mvar are all less than unity in absolute value.
Extracting the dynamics of a single scalar variable from a first-order matrix system
Starting from the Template:Math-dimensional system Template:Math, we can extract the dynamics of one of the state variables, say Template:Math. The above solution equation for Template:Mvar shows that the solution for Template:Math is in terms of the Template:Mvar eigenvalues of Template:Math. Therefore the equation describing the evolution of Template:Math by itself must have a solution involving those same eigenvalues. This description intuitively motivates the equation of evolution of Template:Math, which is
where the parameters Template:Mvar are from the characteristic equation of the matrix Template:Math:
Thus each individual scalar variable of an Template:Mvar-dimensional first-order linear system evolves according to a univariate Template:Mvarth-degree difference equation, which has the same stability property (stable or unstable) as does the matrix difference equation.
Solution and stability of higher-order cases
Matrix difference equations of higher order—that is, with a time lag longer than one period—can be solved, and their stability analyzed, by converting them into first-order form using a block matrix (matrix of matrices). For example, suppose we have the second-order equation
with the variable vector Template:Math being Template:Math and Template:Math and Template:Math being Template:Math. This can be stacked in the form
where Template:Math is the Template:Math identity matrix and Template:Math is the Template:Math zero matrix. Then denoting the Template:Math stacked vector of current and once-lagged variables as Template:Math and the Template:Math block matrix as Template:Math, we have as before the solution
Also as before, this stacked equation, and thus the original second-order equation, are stable if and only if all eigenvalues of the matrix Template:Math are smaller than unity in absolute value.
Nonlinear matrix difference equations: Riccati equations
In linear-quadratic-Gaussian control, there arises a nonlinear matrix equation for the reverse evolution of a current-and-future-cost matrix, denoted below as Template:Math. This equation is called a discrete dynamic Riccati equation, and it arises when a variable vector evolving according to a linear matrix difference equation is controlled by manipulating an exogenous vector in order to optimize a quadratic cost function. This Riccati equation assumes the following, or a similar, form:
where Template:Math, Template:Math, and Template:Math are Template:Math, Template:Math is Template:Math, Template:Math is Template:Math, Template:Math is the number of elements in the vector to be controlled, and Template:Math is the number of elements in the control vector. The parameter matrices Template:Math and Template:Math are from the linear equation, and the parameter matrices Template:Math and Template:Math are from the quadratic cost function. See here for details.
In general this equation cannot be solved analytically for Template:Math in terms of Template:Mvar; rather, the sequence of values for Template:Math is found by iterating the Riccati equation. However, it has been shown[3] that this Riccati equation can be solved analytically if Template:Math and Template:Math, by reducing it to a scalar rational difference equation; moreover, for any Template:Mvar and Template:Mvar if the transition matrix Template:Math is nonsingular then the Riccati equation can be solved analytically in terms of the eigenvalues of a matrix, although these may need to be found numerically.[4]
In most contexts the evolution of Template:Math backwards through time is stable, meaning that Template:Math converges to a particular fixed matrix Template:Math which may be irrational even if all the other matrices are rational. See also Template:Section link.
A related Riccati equation[5] is
in which the matrices Template:Math are all Template:Math. This equation can be solved explicitly. Suppose which certainly holds for Template:Math with Template:Math and with Template:Math. Then using this in the difference equation yields
so by induction the form holds for all Template:Mvar. Then the evolution of Template:Math and Template:Math can be written as
Thus by induction
See also
- Matrix differential equation
- Difference equation
- Linear difference equation
- Dynamical system
- Algebraic Riccati equation