Compute an Orthogonal Matrix

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

Your matrix A can't be diagonalized using an orthogonal matrix U.
Your A is a singular matrix.
Hi namo,
should the first row of A be [0 0 0 0 0 -1] instead of [0 0 0 0 -1 0] ? That puts A into a nice looking form and allows a solution like you are talking about.
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).
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

Asked:

on 11 Apr 2019

Edited:

on 15 Apr 2019

Community Treasure Hunt

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

Start Hunting!