state-space eigenvector matrix normalization
10 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Matt J
2017-6-16
编辑:Matt J
2017-6-16
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 个评论
Matt J
2017-6-16
编辑:Matt J
2017-6-16
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).
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!