finding the closest orthonormal basis to a given (non-orthogonal) basis
1 view (last 30 days)
Show older comments
I am given the following 6 x 6 matrix Jn consisting of the given (non-orthogonal) basis vectors (as its column):
Jn=[0.1950 0.3560 0.4491 0.5341 0.5758 -0.3948;
0.4445 0.6372 0.4122 0.0485 -0.4281 0.3981;
0.5515 0.2668 -0.4214 -0.4872 0.1807 -0.4153;
0.5266 -0.1270 -0.3925 0.5090 0.1218 0.4113;
0.4002 -0.5737 0.4320 0.0408 -0.3826 -0.4056;
0.1508 -0.2255 0.3318 -0.4629 0.5398 0.4236]
Given this Jn, I could obtain an orthonormal set of basis via either Gram-Schmidt process (short script) or the function "ortho". But I keep failing to obtain the closest orthonormal basis to the original Jn, i.e., in a sens that sum(sum((O-Jn).^2)) is the minimum, where O is a matrix consisting of orthonormal basis (as its column). In practice Jn is already pretty close to orthogonal matrix, so I would expect the desired orthonormal basis is obtained from small pertubation of the Jn. How can I do this?
1 Comment
Matt J
on 9 Mar 2021
I could obtain an orthonormal set of basis via either Gram-Schmidt process
You would have to be careful of numerical stability issues:
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!