What is the simple form of a contraction matrix in the direction of a vector?
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
Given a vector v in dimension n, how to construct a n by n matrix that simply contracts or extends along the vector v but leaves any vector perpendicular to v unchanged? What is the simplest way to construct such a matrix? The best I could come up with was to assume the matrix in diagonalized form and set up the eigenvectors and eigenvalue. Is there easier way to do this in any dimension n? If not, May I get the general form of such matrix in 3 dimensions ?
linear-algebra
add a comment |Â
up vote
0
down vote
favorite
Given a vector v in dimension n, how to construct a n by n matrix that simply contracts or extends along the vector v but leaves any vector perpendicular to v unchanged? What is the simplest way to construct such a matrix? The best I could come up with was to assume the matrix in diagonalized form and set up the eigenvectors and eigenvalue. Is there easier way to do this in any dimension n? If not, May I get the general form of such matrix in 3 dimensions ?
linear-algebra
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Given a vector v in dimension n, how to construct a n by n matrix that simply contracts or extends along the vector v but leaves any vector perpendicular to v unchanged? What is the simplest way to construct such a matrix? The best I could come up with was to assume the matrix in diagonalized form and set up the eigenvectors and eigenvalue. Is there easier way to do this in any dimension n? If not, May I get the general form of such matrix in 3 dimensions ?
linear-algebra
Given a vector v in dimension n, how to construct a n by n matrix that simply contracts or extends along the vector v but leaves any vector perpendicular to v unchanged? What is the simplest way to construct such a matrix? The best I could come up with was to assume the matrix in diagonalized form and set up the eigenvectors and eigenvalue. Is there easier way to do this in any dimension n? If not, May I get the general form of such matrix in 3 dimensions ?
linear-algebra
asked Jul 25 at 6:05
Johnny Chen
686
686
add a comment |Â
add a comment |Â
1 Answer
1
active
oldest
votes
up vote
0
down vote
You could use a construction similar to the one for building reflections. Split $mathbf x$ into components $mathbf x_parallel+mathbf x_perp$ parallel to and perpendicular to $mathbf v$. The transformation you want is then $mathbf x mapsto lambdamathbf x_parallel+mathbf x_perp$. (With $lambda=-1$ you get a reflection in the hyperplane orthogonal to $mathbf v$.) Proceeding as with a reflection, you have $mathbf x_parallel = mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v$ and $mathbf x_perp = mathbf x - mathbf x_parallel$. Putting this all together, $$lambda mathbf x_parallel + mathbf x_perp = lambda mathbf x_parallel + mathbf x - mathbf x_parallel = mathbf x+(lambda-1)mathbf x_parallel = mathbf x + (lambda-1)mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v = left(I + (lambda-1)mathbf v mathbf v^T over mathbf v^Tmathbf vright)mathbf x.$$
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You could use a construction similar to the one for building reflections. Split $mathbf x$ into components $mathbf x_parallel+mathbf x_perp$ parallel to and perpendicular to $mathbf v$. The transformation you want is then $mathbf x mapsto lambdamathbf x_parallel+mathbf x_perp$. (With $lambda=-1$ you get a reflection in the hyperplane orthogonal to $mathbf v$.) Proceeding as with a reflection, you have $mathbf x_parallel = mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v$ and $mathbf x_perp = mathbf x - mathbf x_parallel$. Putting this all together, $$lambda mathbf x_parallel + mathbf x_perp = lambda mathbf x_parallel + mathbf x - mathbf x_parallel = mathbf x+(lambda-1)mathbf x_parallel = mathbf x + (lambda-1)mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v = left(I + (lambda-1)mathbf v mathbf v^T over mathbf v^Tmathbf vright)mathbf x.$$
add a comment |Â
up vote
0
down vote
You could use a construction similar to the one for building reflections. Split $mathbf x$ into components $mathbf x_parallel+mathbf x_perp$ parallel to and perpendicular to $mathbf v$. The transformation you want is then $mathbf x mapsto lambdamathbf x_parallel+mathbf x_perp$. (With $lambda=-1$ you get a reflection in the hyperplane orthogonal to $mathbf v$.) Proceeding as with a reflection, you have $mathbf x_parallel = mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v$ and $mathbf x_perp = mathbf x - mathbf x_parallel$. Putting this all together, $$lambda mathbf x_parallel + mathbf x_perp = lambda mathbf x_parallel + mathbf x - mathbf x_parallel = mathbf x+(lambda-1)mathbf x_parallel = mathbf x + (lambda-1)mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v = left(I + (lambda-1)mathbf v mathbf v^T over mathbf v^Tmathbf vright)mathbf x.$$
add a comment |Â
up vote
0
down vote
up vote
0
down vote
You could use a construction similar to the one for building reflections. Split $mathbf x$ into components $mathbf x_parallel+mathbf x_perp$ parallel to and perpendicular to $mathbf v$. The transformation you want is then $mathbf x mapsto lambdamathbf x_parallel+mathbf x_perp$. (With $lambda=-1$ you get a reflection in the hyperplane orthogonal to $mathbf v$.) Proceeding as with a reflection, you have $mathbf x_parallel = mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v$ and $mathbf x_perp = mathbf x - mathbf x_parallel$. Putting this all together, $$lambda mathbf x_parallel + mathbf x_perp = lambda mathbf x_parallel + mathbf x - mathbf x_parallel = mathbf x+(lambda-1)mathbf x_parallel = mathbf x + (lambda-1)mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v = left(I + (lambda-1)mathbf v mathbf v^T over mathbf v^Tmathbf vright)mathbf x.$$
You could use a construction similar to the one for building reflections. Split $mathbf x$ into components $mathbf x_parallel+mathbf x_perp$ parallel to and perpendicular to $mathbf v$. The transformation you want is then $mathbf x mapsto lambdamathbf x_parallel+mathbf x_perp$. (With $lambda=-1$ you get a reflection in the hyperplane orthogonal to $mathbf v$.) Proceeding as with a reflection, you have $mathbf x_parallel = mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v$ and $mathbf x_perp = mathbf x - mathbf x_parallel$. Putting this all together, $$lambda mathbf x_parallel + mathbf x_perp = lambda mathbf x_parallel + mathbf x - mathbf x_parallel = mathbf x+(lambda-1)mathbf x_parallel = mathbf x + (lambda-1)mathbf v^Tmathbf x over mathbf v^Tmathbf vmathbf v = left(I + (lambda-1)mathbf v mathbf v^T over mathbf v^Tmathbf vright)mathbf x.$$
answered Jul 25 at 7:34
amd
25.8k2943
25.8k2943
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2862075%2fwhat-is-the-simple-form-of-a-contraction-matrix-in-the-direction-of-a-vector%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password