View Original Matrix
View Decomposed Matrix
Make a Donation
Welcome to the Epsilon Decomposition site. This interactive site enables execution of epsilon decomposition on uploaded input data. Input matrix data have to be provided as csv ascii compressed file. After data upload, input matrix graphical presentation is available. Now epsilon decomposition can be performed and decomposition results are presented in tabular form. Also, graphical presentation of decomposed matrix is available. Finally decomposition results data are provided for download.
By clicking on Get Demo Data button, demo matrix data are going to be loaded. Now, by selecting Decompose Matrix link, demo matrix can be decomposed with user entered epsilon value. Graphical presentation of decomposed input matrix for epsilon ranging from 0 to 0.9 are shown below.
What is Epsilon Decomposition
Epsilon decomposition, decomposes a matrix and creates a block diagonal matrix. It removes normalized matrix row elements that are less than epsilon (0 <= epsilon <= 1). The row elements are normalized by the absolute maximum value in the row. After the normalization process, all normalized row values are <= 1. The next step is to find what matrix rows are connected, then permute the matrix rows and columns in order to to get a block diagonal decomposed matrix.
Epsilon decomposition can be used in decentralized control in order to find what parts of the system are weakly coupled.
Note that program is handling both square and rectangular matrices.
The following example demonstrates epsilon decomposition and its results.
Let us apply epsilon decomposition with epsilon = 0.2 to the following matrix:
First the row elements are normalized by row absolute maximal value
After removing elements that are less than 0.2, reordering the row and columns and restoring original values, the following block diagonal matrix is produced:
The program also provides the following information:
The permutation vectors can be used in a following way:
Adec(rowPermLhs, colPermLhs) = Aorg
Adec = Aorg(rowPermRhs, colPermRhs)
After permuting the original matrix one needs to remove elements that are outside the blocks in order to get a block diagonal decomposed matrix.
I hope that you are going to enjoy using Epsilon Decomposition site.