# LMIs in Control/pages/Maximum Singular Value of a Complex Matrix

LMIs in Control/pages/Maximum Singular Value of a Complex Matrix

Maximum Singular Value of a Complex Matrix

## The System

Consider ${\displaystyle A\in \mathbb {R} ^{n\times m}}$  as well as ${\displaystyle \gamma }$ . A maximum singular value of a matrix ${\displaystyle A}$  is less than ${\displaystyle \gamma }$  if and only if ${\displaystyle AA^{H}<\gamma ^{2}I}$ , where ${\displaystyle A^{H}}$  is the conjugate transpose or Hermitian transpose of the matrix ${\displaystyle A}$ .

## The Data

The matrix ${\displaystyle A}$  is the only data required.

## The LMI: Maximum Singular Value of a Complex Matrix

Using the Shur complement procedure, the following LMIs can be constructed:

{\displaystyle {\begin{aligned}{\bar {\sigma }}(A)<\gamma \\{\begin{bmatrix}\gamma I&A\\A^{H}&\gamma I\end{bmatrix}}&>0\\\end{aligned}}}

The following LMI is also equivalent:

{\displaystyle {\begin{aligned}{\bar {\sigma }}(A)<\gamma \\{\begin{bmatrix}\gamma I&A^{H}\\A&\gamma I\end{bmatrix}}&>0\\\end{aligned}}}

## Conclusion:

The results from this LMI will give the maximum complex value of the matrix ${\displaystyle A}$ :

{\displaystyle {\begin{aligned}{\bar {\sigma }}(A)<\gamma \end{aligned}}}

## Implementation

% Maximimum Singular Value of Complex Matrix
% -- EXAMPLE --

%Clears all variables
clear; clc; close all;

%SDPVAR variables
gam1 = sdpvar(1);
gam2 = sdpvar(1);

%Example Matrix A
A = rand(9,6)+rand(9,6)*1i;

%Constraint Matrix for LMI optimization
M1 = [gam1*eye(9) A; A' gam1*eye(6)];

%Equivalent counter Matrix
M2 = [gam2*eye(6) A';A gam2*eye(9)];

%Constraints
Fc1 = (M1 >= 0);
Fc2 = (M2 >= 0);

%Objective function
obj1=gam1;
obj2=gam2;

%options
opt = sdpsettings('solver','sedumi');

%Optimization
optimize(Fc1,obj1,opt)
optimize(Fc2,obj2,opt)

%Displays output
fprintf('\nValue of Max singular value (using first method): ')
disp(value(gam1))

fprintf('\nValue of Max singular value (using second method): ')
disp(value(gam2))

fprintf('\nMATLAB verified output: ')
disp(norm(norm(A)))