Rotation that maximises a vector length

1 view (last 30 days)
Fabio Freschi
Fabio Freschi on 8 Mar 2017
Commented: Fabio Freschi on 9 Mar 2017
Hi all,
I have a problem that is more related to linear algebra than Matlab itself, even if I would like to solve it with Matlab.
I have a 3*3 tensor 'K' that applied to a vector 'b' returns another vector 'm'
m = K*b;
Let's suppose that the vector 'b' has a fixed magnitude but the orientation is arbitrary. Now, I would like to find the rotation to apply to 'b' such that the magnitude of 'm' is maximum.
For example (but this is trivial), let's assume unitary 'b' and
K = [2 0 0; 0 0 0; 0 0 0];
The direction with maximum 'm' is with
bR = [1 0 0];
The solution can be not unique, and the problem is not well posed, but I wonder if there is a procedure to extract at least one direction of 'b' that maximises the length of 'm' for a generic tensor 'M'.
Thank you in advance Fabio
  6 Comments
Torsten
Torsten on 9 Mar 2017
Edited: Torsten on 9 Mar 2017
That's how I understand what the OP's questions:
K is a given matrix (it does not need to be a rotation matrix) together with an arbitrary vector b.
Now the OP searches for a rotation matrix R such that K*R*b has maximum length.
In other words:
The OP searches for a vector y with |y| = |b| such that |K*y| is maximized. And without loss of generality, we can assum |y| = 1.
Best wishes
Torsten.
Fabio Freschi
Fabio Freschi on 9 Mar 2017
Torsten is right. K does not need to be a rotation matrix.
Thanks for your help!
Fabio

Sign in to comment.

Answers (0)

Categories

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