state-space eigenvector matrix normalization

24 views (last 30 days)
Jeff
Jeff on 16 Jun 2017
Edited: Matt J on 16 Jun 2017
I am in a bit of a quagmire & seeking suggestions?
I have utilized the eig(A) command to find the eigenvalues & eigenvectors of a STATE SPACE matrix. If the determinant of the eigenvector matrix is NONZERO then presumably all of the solutions are considered independent. Unfortunately, a normalized matrix will render all of the elements with a magnitude less that UNITY. Finding the determinant of this matrix will yield a very small number. The quagmire I have what or how do I consider what is truly NONZERO vs identically zero?
I get values on order of 10^-20 which in a practical sense is considered ZERO, but in the situation of normalization I cannot be confident of that interpretation. What is the best strategy of determining significant figures of the determinant such that I can assess whether it is truly NONZERO?
Should I denormalize the matrix & if so how? Is there a command to denormalize a matrix? I have had not success finding a command to date.
Thanx 4 any assistance

Answers (1)

Matt J
Matt J on 16 Jun 2017
Edited: Matt J on 16 Jun 2017
You should never use det() to measure non-singularity of a matrix. You should use cond(), which is inherently normalized. If the condition number is super-huge, you should doubt the non-singularity of the matrix.
  4 Comments
Jeff
Jeff on 16 Jun 2017
That will depend on just how linearly independent you need the matrix to be. Are you using the matrix to solve an equation? If so, how much error in the solution can you tolerate?
In essence I am solving a linear equation because that is what a state-space matrix is, correct?
The amount of error tolerance I am attempting to address. So I am questioning the significance of the condition number as opposed to the determinant of the eigenvector matrix.
Matt J
Matt J on 16 Jun 2017
Edited: Matt J on 16 Jun 2017
No, a linear equation means you are solving something that looks like A*x=b. If b has error/noise e, then the error in the solution x will be magnified by cond(A), as described here.
Ultimately, though the issue is, why do you care if the matrix is non-singular? How does that affect the manipulations you are doing, and can you quantify the impact in terms of the condition number? If you can, then you can decide on a safe threshold for cond(A).

Sign in to comment.

Categories

Find more on Matrix Computations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!