Function Repository Resource:

# DefinitePencilReduce

Convert a Hermitian-definite matrix pencil into a matrix with the same eigenvalues

Contributed by: Jan Mangaldan
 ResourceFunction["DefinitePencilReduce"][{m,a}] yields a list of matrices {s,t}, where s is a Hermitian matrix with the same eigenvalues as the Hermitian definite matrix pencil {m,a}, and t is a transformation matrix that transforms the eigenvectors of s into the eigenvectors of {m,a}.

## Details and Options

An eigenvector of the pencil {m,a} can be obtained from LinearSolve[t,v], where v is an eigenvector of s.
ResourceFunction["DefinitePencilReduce"] takes the option Method. Possible settings for Method include "Cholesky" and "Eigensystem", with the default being Automatic.
With Method"Cholesky", ResourceFunction["DefinitePencilReduce"] uses the Cholesky decomposition to transform the pencil.
With Method"Eigensystem", ResourceFunction["DefinitePencilReduce"] uses an eigendecomposition to transform the pencil.

## Examples

### Basic Examples (2)

A symmetric definite pencil:

 In[1]:=

Reduce the pencil:

 In[2]:=
 Out[2]=

Compute the eigenvalues of the transformed matrix:

 In[3]:=
 Out[3]=

These are the same as the eigenvalues of the original pencil:

 In[4]:=
 Out[4]=

Compute the normalized eigenvectors of the transformed matrix:

 In[5]:=
 Out[5]=

These are the same as the eigenvectors of the original pencil, up to a normalization constant:

 In[6]:=
 Out[6]=

A machine precision symmetric definite pencil:

 In[7]:=

Reduce the pencil:

 In[8]:=
 Out[8]=

Compute the eigenvalues of the transformed matrix:

 In[9]:=
 Out[9]=

These are the same as the eigenvalues of the original pencil:

 In[10]:=
 Out[10]=

Compute the normalized eigenvectors of the transformed matrix:

 In[11]:=
 Out[11]=

These are the same as the eigenvectors of the original pencil, up to a normalization constant:

 In[12]:=
 Out[12]=

### Scope (3)

Reduce an exact symmetric definite pencil:

 In[13]:=
 Out[13]=

Reduce a symmetric definite pencil with 24-digit precision arithmetic::

 In[14]:=
 Out[14]=

A random symmetric definite pencil:

 In[15]:=
 Out[15]=

Reduce the pencil:

 In[16]:=
 Out[16]=

A random Hermitian definite pencil:

 In[17]:=
 Out[17]=

Reduce the pencil:

 In[18]:=
 Out[18]=

### Options (2)

#### Method (2)

Use the "Cholesky" method to reduce the definite pencil:

 In[19]:=
 Out[19]=

Use the "Eigensystem" method to reduce the definite pencil:

 In[20]:=
 Out[20]=

### Properties and Relations (4)

A definite pencil:

 In[21]:=

Reduce the definite pencil:

 In[22]:=
 Out[22]=

Verify that m is given by ConjugateTranspose[t].s.t:

 In[23]:=
 Out[23]=

Verify that a is given by ConjugateTranspose[t].t:

 In[24]:=
 Out[24]=

### Possible Issues (1)

DefinitePencilReduce is left unevaluated if the argument is not a definite pencil:

 In[25]:=
 Out[25]=
 In[26]:=
 Out[26]=

## Version History

• 1.0.0 – 08 January 2021