Reflection across the plane

Let $T: \Bbb R^3 \rightarrow \Bbb R^3$ be the linear transformation given by reflecting across the plane $S=\{x:-x_1+x_2+x_3=0\}$ (...)

Then, $S={\rm gen}[(1,1,0),(1,0,1)].$

But how can I get the matrix $R_v$ such that reflects across $S$?

Thanks!


Solution 1:

The matrix that reflects across the plane through the origin with unit normal $\mathbf{N} = (a,b,c)$ is: $$ \mathbf{I} - 2\mathbf{N}^T\mathbf{N} = \begin{bmatrix} {1- 2a^2} & {-2ab} & {-2ac} \\ {-2ab} & {1-2b^2} & {-2bc} \\ {-2ac} & {-2bc} & {1-2c^2} \end{bmatrix} $$ See here for reference. A normal of your plane is $\mathbf{N} = (-1,1,1)$, so plug in $a=-1/\sqrt{3}$, $b=1\sqrt{3}$, $c=1\sqrt{3}$.

Solution 2:

The vector $\vec{n}=\langle -1,1,1 \rangle$ is normal to the plane, thus $T$ maps $\vec{n}$ to $-\vec{n}=\langle 1,-1,-1 \rangle$. It also fixes the vectors $\vec{u}= \langle 1,1, 0 \rangle$ and $\vec{v} = \langle -1,1,-2 \rangle$ that are perpendicular to each other and to $\vec{n}$. More generaly, $\vec{u}$ could be any vector whose dot product with $\vec{n}$ is zero (such vectors are easy to find) and $\vec{v} = \vec{n}\times\vec{u}$.

In the basis determined by $\vec{n}$, $\vec{u}$, and $\vec{v}$, your matrix looks like $$\left( \begin{array}{ccc} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right).$$

The matrix $A$ whose columns are formed by $\vec{n}$, $\vec{u}$, and $\vec{v}$ form a similarity transformation that changes the diagonal matrix $E$ formed by the eigenvalues $-1$, $1$, and $1$ into the matrix you want. Thus, your matrix is

$$A \cdot E \cdot A^{-1} = \left( \begin{array}{ccc} -1 & 1 & -1 \\ 1 & 1 & 1 \\ 1 & 0 & -2 \\ \end{array} \right) \cdot \left( \begin{array}{ccc} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right) \cdot \frac{1}{6}\left( \begin{array}{ccc} -2 & 2 & 2 \\ 3 & 3 & 0 \\ -1 & 1 & -2 \\ \end{array} \right) = \frac{1}{3}\left( \begin{array}{ccc} 1 & 2 & 2 \\ 2 & 1 & -2 \\ 2 & -2 & 1 \\ \end{array} \right).$$

Of course, it's easy to check that this matrix behaves as advertised by multiplying it by the vectors above.

Addendum

This technique can be used to derive Bubba's answer, although I used Mathematica to do the heavy lifting for me.

A = Transpose[{{a, b, c}, {0, -c, b}, {b^2 + c^2, -a*b, -a*c}}];
FullSimplify[A.{{-1, 0, 0}, {0, 1, 0}, {0, 0, 1}}.Inverse[A]] /.
  a^2 + b^2 + c^2 -> 1 // MatrixForm

$$ \left( \begin{array}{ccc} 1-2 a^2 & -2 a b & -2 a c \\ -2 a b & 1-2 b^2 & -2 b c \\ -2 a c & -2 b c & 2 \left(a^2+b^2\right)-1 \\ \end{array} \right) $$

However, seeing Bubba's answer reminded me wonderful and simple Householder reflections are. Just define the function $f:{\mathbb R}^n \rightarrow {\mathbb R}^n$ by $f(x)=\vec{x}-2\vec{n}(\vec{n}^T\vec{x})$, where $\vec{x}$ is a column vector and $\vec{n}$ is a unit column vector denoting your normal. It's super simple to check that $f$ maps $\vec{n}$ to $-\vec{n}$: $$f(\vec{n}) = \vec{n}-2\vec{n}(\vec{n}^T\vec{n}) = \vec{n}-2\vec{n}1=-\vec{n},$$ where $\vec{n}^T\vec{n}=1$, since $\vec{n}$ is a unit vector. It's also super simple to see that any vector $\vec{x}$ perpendicular to $\vec{n}$ is fixed by $f$, since $$f(\vec{x}) = \vec{x}-2\vec{n}(\vec{n}^T\vec{x}) = \vec{x}-2\vec{n}0=\vec{x}.$$

Factoring out the $\vec{x}$ from the definition of $f$, we see the matrix you need: $$I-2\vec{n}\,\vec{n}^T.$$

Applying this to your situation, we get the same matrix as above. \begin{align} I-\vec{n}\,\vec{n}^T &= \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right) - 2\frac{1}{\sqrt{3}}\left( \begin{array}{c} -1 \\ 1 \\ 1 \\ \end{array} \right) \left( \begin{array}{ccc} -1 & 1 & 1 \\ \end{array} \right)/\sqrt{3}\\ &= \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right) - 2\frac{1}{3} \left( \begin{array}{ccc} 1 & -1 & -1 \\ -1 & 1 & 1 \\ -1 & 1 & 1 \\ \end{array} \right) = \frac{1}{3} \left( \begin{array}{ccc} 1 & 2 & 2 \\ 2 & 1 & -2 \\ 2 & -2 & 1 \\ \end{array} \right) \end{align}

Solution 3:

$R$ is the matrix whose columns are the results of reflecting $(1,0,0)$, $(0,1,0)$, and $(0,0,1)$ across $S$. So, can you work out the result of reflecting each of those three vectors across $S$?