Compute an Orthogonal Matrix

40 views (last 30 days)
namo mah
namo mah on 11 Apr 2019
Edited: Matt J on 15 Apr 2019
Hi All,
I need your help. Is there any solution in Matlab to compute an orthogonal matrix if the first coulomn of the orthogonal matrix is known.
For example, I want to find an orthonal matrix for matrix A,
A = [1 0 0 0 -1 0;-1 1 0 0 0 0;0 -1 1 0 0 0;0 0 -1 1 0 0;0 0 0 -1 1 0;0 0 0 0 -1 1];
U*A*inv(U) = B
U is an orthogonal matrix with the first coulomn of U being [1;1;1;1;1;1] .
B is a diagonal matrix with all eigenvalues of A on the diagonal.
Thank you very much for your help
  5 Comments
Matt J
Matt J on 15 Apr 2019
U is an orthogonal matrix with the first coulomn of U being [1;1;1;1;1;1] .
The norm of the columns (and the rows) of an orthogonal matrix must be one. So, a column of 1's is impossible. Maybe you mean that the column should be [1;1;1;1;1;1] /sqrt(6).
David Goodmanson
David Goodmanson on 15 Apr 2019
Edited: David Goodmanson on 15 Apr 2019
Hi Matt / namo
yes that's true, thanks for pointing it out.
In the specific case of the modified A, there is a U of the right form, but I had not noticed before that it is still not quite right because
U'*A*U = B
whereas the question wanted
U*A*U' = B

Sign in to comment.

Answers (1)

Matt J
Matt J on 15 Apr 2019
Edited: Matt J on 15 Apr 2019
No, this is generally not possible. When all the eigenvalues of A are distinct, for example, the (orthonormalized) eigenvectors are unique up to sign. That means you cannot arbitrarily specify one column of U.

Categories

Find more on Linear Algebra 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!