qz_ordered: Decoupling into Stable and Unstable Systems

Description Usage Arguments Details Value

Description

Uses the qz decomposition of Γ_0 , Γ_1 from Sims' canoncial form to decouple into a stable and an unstable part. The function arranges the equations such that all generalized eigenvalues in the QZ-decomposition which are larger than the given threshold are in the bottom right block. To be more precise, the ratios of the diagonal elements of the upper-triangular matrices in the QZ-decomposition for which

Ω_{i,i} / Λ_{i,i} > threshold

holds, are in the bottom right corner. The functions ensures that the products t(Q)* Λ *t(Z) and t(Q)* Ω *t(Z) remains unchanged.

Usage

1
2
qz_ordered(threshold = 1.01, my_Gamma_0, my_Gamma_1,
  tol = sqrt(.Machine$double.eps))

Arguments

threshold

Threshold to define when a generalized eigenvalue is considered as unstable

my_Gamma_0

Matrix from Sims' canonical form

my_Gamma_1

Matrix from Sims' canonical form

tol

Numeric tolerance level. Default value set to the square root of machine precision.

Details

Note that the function qz returns the QZ-decomposition such that

( Γ_0, Γ_1 ) = ( VSL * S * Conj(t(VSR)), VSL * T * Conj(t(VSR)) ),

where VSL and VSR are Hermitian matrices, and S and T are upper triangular matrices (output of Fortran routines). However, the QZ-decomposition corresponds in Sims' notation ( see page 9, formula (32) in Sims (2001) ) to

( Γ_0, Γ_1 ) = ( Conj(t(Q)) * Λ * Conj(t(Z)) , Conj(t(Q)) * Ω * Conj(t(Z)) ).

The code is intended to keep the notation close to Sims (2001) and adjusts the outputs of the qz function accordingly.

Some parts of this function are based on R code by Christopher A. Sims (22 Feb 2004) which in turn is based on earlier matlab code (finished 27 Apr 2000). Retrieved on 14 June 2017 from http://sims.princeton.edu/yftp/gensys/Rfiles/.

Value

List object containing


bfunovits/indeterminateR documentation built on May 28, 2019, 7:10 p.m.