108 CHAPTER 3. FUNCTIONAL DESCRIPTION OF Xµ
The outputs of the µ function are: the upper and lower bounds for µ;theDmatrix for
the upper bound; the Q matrix for the lower bounds; and a sensitivity estimate for the
part of the D matrix corresponding to each block in ∆. The sensitivity estimate is
essentially the gradient of the upper bound value with respect to the value of the D
scale. It is useful in weighting the D scale fitting procedure.
The function syntax is shown below.
[mubnds,D,Dinv,Delta,sens] = mu(M,blk)
The upper and lower bounds are returned in mubnds. The variable sens gives a measure
of the sensitivity of the upper bound to the D matrix. Both D and Q are returned as
the matrices (or pdms) D and Delta. Note that the inverse of D, used in the calculation
of the upper bound, is also returned (as Dinv). This is done as, in the non-square ∆
block case, the dimensions of D and D
−1
are different.
The block structure is a vector of dimension: number of blocks × 2. For each block the
output and input dimension is specified. To specify a scalar × identity block, the input
dimension is set to zero.
A power iteration, with several random restarts, is used for the lower bound. The upper
bound calculation uses an Osborne balancing method and enhances this with the Perron
vector method for problems with less than 10 blocks. These methods have been found to
be appropriate for the vast majority of practically motivated problems.
New algorithms for these calculations are currently under development. The most
significant enhancement is the ability to calculate µ with respect to structures which
include real valued blocks. Because of the development effort in this direction, a wide
range of calculation options were not provided for the mu function.
The following example gives the simplest matrix with a gap between µ and the D-scale
upper bound. It also illustrates the use of the mu function for constant matrices.
The following is the classic example showing that mu is not equal to its upper bound for
more than three full blocks. We include a random scaling here to give a non-trivial
D-scale.
gamma = 3 + sqrt(3); beta = sqrt(3) -1
a = sqrt(2/gamma); b = 1/sqrt(gamma)