balance
Returns a matrix with rows and columns of roughly equal magnitude.
Syntax
AA = balance(A)
AA = balance(A, opt)
[DD, AA] = balance(A, opt)
[D, P, AA] = balance(A, opt)
Inputs
- A
- The matrix to balance.
- opt
- The options are:
Outputs
- AA
- The balanced matrix.
- DD
- A diagonal matrix with powers of 2.
- P
- A permutation vector.
- D
- A vector whose permutation by P produces the diagonal of DD.
Example
[DD,AA] = balance([1,0,0.0001;1,1,0.01;10000,100,1])
DD = [Matrix] 3 x 3
0.00012 0.00000 0.00000
0.00000 0.00781 0.00000
0.00000 0.00000 1.00000
AA = [Matrix] 3 x 3
1.00000 0.00000 0.81920
0.01563 1.00000 1.28000
1.22070 0.78125 1.00000
Comments
balance is only useful with an asymmetric matrix A. Its purpose is to improve eigenvalue calculations by computing eig(AA) in place of eig(A).
AA = DD \ A * DD. The row and column norms of AA are roughly equal in magnitude.
DD = P * D, where P is a permutation matrix and D is a diagonal matrix of powers of two.