Matrix difference equation

From testwiki
Jump to navigation Jump to search

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,

𝐱t=𝐀𝐱tβˆ’1+𝐁𝐱tβˆ’2

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

𝐱t+2=𝐀𝐱t+1+𝐁𝐱t

or as

𝐱n=𝐀𝐱nβˆ’1+𝐁𝐱nβˆ’2

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

𝐱t=𝐀𝐱tβˆ’1+𝐛

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

π±βˆ—=[πˆβˆ’π€]βˆ’1𝐛

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:

[𝐱tβˆ’π±βˆ—]=𝐀[𝐱tβˆ’1βˆ’π±βˆ—]

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:

𝐲1=𝐀𝐲0𝐲2=𝐀𝐲1=𝐀2𝐲0𝐲3=𝐀𝐲2=𝐀3𝐲0

and so forth, so that by mathematical induction the solution in terms of Template:Mvar is

𝐲t=𝐀t𝐲0

Further, if Template:Math is diagonalizable, we can rewrite Template:Math in terms of its eigenvalues and eigenvectors, giving the solution as

𝐲t=𝐏𝐃tπβˆ’1𝐲0,

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

y1,t=a1y1,tβˆ’1+a2y1,tβˆ’2++any1,tβˆ’n

where the parameters Template:Mvar are from the characteristic equation of the matrix Template:Math:

Ξ»nβˆ’a1Ξ»nβˆ’1βˆ’a2Ξ»nβˆ’2βˆ’βˆ’anΞ»0=0.

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

𝐱t=𝐀𝐱tβˆ’1+𝐁𝐱tβˆ’2

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

[𝐱t𝐱tβˆ’1]=[π€ππˆπŸŽ][𝐱tβˆ’1𝐱tβˆ’2]

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

𝐳t=𝐋t𝐳0

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:

𝐇tβˆ’1=𝐊+𝐀𝐇tπ€βˆ’π€π‡t𝐂[𝐂𝐇t𝐂+𝐑]βˆ’1𝐂𝐇t𝐀

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

𝐗t+1=βˆ’[𝐄+𝐁𝐗t][𝐂+𝐀𝐗t]βˆ’1

in which the matrices Template:Math are all Template:Math. This equation can be solved explicitly. Suppose 𝐗t=𝐍t𝐃tβˆ’1, which certainly holds for Template:Math with Template:Math and with Template:Math. Then using this in the difference equation yields

𝐗t+1=βˆ’[𝐄+𝐁𝐍t𝐃tβˆ’1]𝐃t𝐃tβˆ’1[𝐂+𝐀𝐍t𝐃tβˆ’1]βˆ’1=βˆ’[𝐄𝐃t+𝐁𝐍t][[𝐂+𝐀𝐍t𝐃tβˆ’1]𝐃t]βˆ’1=βˆ’[𝐄𝐃t+𝐁𝐍t][𝐂𝐃t+𝐀𝐍t]βˆ’1=𝐍t+1𝐃t+1βˆ’1

so by induction the form 𝐗t=𝐍t𝐃tβˆ’1 holds for all Template:Mvar. Then the evolution of Template:Math and Template:Math can be written as

[𝐍t+1𝐃t+1]=[βˆ’πβˆ’π„π€π‚][𝐍t𝐃t]≑𝐉[𝐍t𝐃t]

Thus by induction

[𝐍t𝐃t]=𝐉t[𝐍0𝐃0]

See also

References

Template:Reflist