Can a controllable matrix become uncontrollable due to matrix transformations?

2 views (last 30 days)
I don't think it can because I don't think matrix transformations change linear independence of this matrix. However, I just tried some things in Matlab and it appears that the determinant can change due to transformations. If this determinant could become zero in this way, the system would be uncontrollable. Is this possible?

Accepted Answer

Jan
Jan on 10 Dec 2017
Edited: Jan on 10 Dec 2017
In theory, these modifications of the matrix cannot change the value of the determinant to 0, if it was not 0 before: swapping rows or columns, multiplying rows or columns by a factor, adding the value of one row or column to another. This is the definition of "linear independent".
But if you work with double precision on a computer, rounding effects limit the reliability:
X = [0.01, 0.003, 0; ...
0.1, 0.01, 0; ...
0, 0, 0.005];
det(X) % -1e-06
det(X ^ 2) % 1e-12 as expected
det(X ^ 30) % 0 rounding effect
Another example:
X = rand(5, 5); % Usually not singular
d1 = det(X)
X(:, 3) = X(:, 3) + pi * X(:, 2)
d2 = det(X)
d1 - d2 % Small, but not necessarily exactly 0.0 due to rounding
But:
X = [1, 0; ...
1, 1]
det(X) % 1
X(:, 2) = X(:, 2) + 1e17 * X(:, 1)
det(X) % 0 !!!
This happens because 1e17+1 cannot be distinguished from 1e17+0, because doubles have about 16 digits only.
  1 Comment
Zeff020
Zeff020 on 10 Dec 2017
Thanks for the clear explanation, I'll mostly be working with rounded off values so I don't think the precision will be a problem. Thanks!

Sign in to comment.

More Answers (1)

David Goodmanson
David Goodmanson on 9 Dec 2017
Edited: David Goodmanson on 9 Dec 2017
Hello Z,
You don't say what kind of transformations you have in mind. but generally
det(B*A) = det(B)*det(A) det(A*C) = det(A)*det(C)
so if A is nonsingular, det(A)~=0, then the only way to make det of the matrix product = 0 is if one of the matrices you are multiplying by has det = 0. For transformations such as rotations, that does not happen. But as a 2d example the projection operator P = [1 0; 0 0] projects 2d vectors onto the x axis. Once that is done you can't get the y component back. Accordingly det(P) = 0 and det(P*A) = 0.
  2 Comments
Walter Roberson
Walter Roberson on 9 Dec 2017
Also note that the above formulas reflect theory. In practice, the different computations will have different floating point round-off effects, and sometimes computations that in theory give symmetric matrices in practice do not do so because of round-off.
Zeff020
Zeff020 on 10 Dec 2017
Edited: Zeff020 on 10 Dec 2017
I'm sorry, I don't think I'm on the same level of math literacy as you are so I don't fully understand your explanation. What I meant to ask was: If you multiply a row in a matrix by a certain value, or if you switch two rows around, or if you add one row to the other one, does this change the controllability?
Actually I think I figured it out myself yesterday by the way, because a matrix is controllable when it is linearly independent or det is not equal to 0. Well, you can't change the linear independence of the matrix due to the transformations I cited earlier, right?
Thanks for the earlier responses by the way!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!