2

I read that one can find a single normal equation in n dimensions by taking n-1 vectors, for example:

in 2d one can find just 2 equations that are perpendicular to a single line (the two being anti-parallel and coincident to each other). While in 3d a single line has an infinite number of orthogonal solutions, to narrow these down to 2 solutions (same as before, them being anti-parallel and coincident to each other, a second vector is needed and a cross product is done.

A cross product will not work in 4d, so how could I get a solution for a normal line with 3 vectors in 4d? I know how to test if a given vector is perpendicular to the others in 4d, but I don't know a way to find such a vector other than trial and error.

Nerdy guy
  • 21
  • 1
  • 1
  • 6
  • Just one point of contention (with your title). The equation you're looking for is a representation of a hyperplane, not a plane. A plane is strictly $2\text{D}$. –  Oct 10 '14 at 21:15

5 Answers5

1

Have you tried

http://en.wikipedia.org/wiki/Cross_product#Generalizations

the multilinear algebra section?

andre
  • 1,284
1

Suppose that you have $n-1$ linearly independent vectors $\mathbf{v}_1,\ \mathbf{v}_2,\ \ldots,\ \mathbf{v}_{n-1}$ in $n$ dimensions and you want to determine the vector $\mathbf{k}$ that is oothogonal to each $\mathbf{v}_i$.

By the definition of orthogonality, you have $\mathbf{v}_i\cdot\mathbf{k}=\mathbf{v}_i^T\mathbf{k}=0$ (in a Euclidean space). Collating the equations for $i$ from $0$ to $n-1$ gives you the system of linear equations $$ \begin{bmatrix}\mathbf{v}_1^T\\\mathbf{v}_2^T\\\vdots\\\mathbf{v}_{n-1}^T\end{bmatrix}\mathbf{k}=\mathbf{0}. $$ Writing $\mathbf{V}=[\mathbf{v}_1,\mathbf{v}_2,\ldots,\mathbf{v}_{n-1}]$, an orthogonal vector to each $\mathbf{v}_i$ can be found by finding the nullspace of $\mathbf{V}^T$. Since $\operatorname{rank}(\mathbf{V})=n-1$, you will necessarily have a nullspace with dimension one.

Daryl
  • 5,598
1

Suppose you have a plane spanned by $e_1, e_2, e_4$. You can find the normal vector using clifford algebra:

First, find the tangent trivector of the plane. This is obtained by wedging the three vectors that span the plane.

$$T = e_1 \wedge e_2 \wedge e_4$$

Since all the vectors are orthogonal here, you can write the wedge product in terms of the clifford "geometric" product instead: simply as $e_1 e_2 e_4$. In the general case, you can write a trivector as a linear combination of such simple terms. The benefit of writing the trivector this way is that the geometric product is associative.

Now, to find the corresponding normal, simply multiply by the unit 4-vector $\epsilon = e_1 e_2 e_3 e_4$:

$$T \epsilon = (e_1 e_2 e_4 )(e_1 e_2 e_3 e_4)$$

You can swap any pair of adjacent vectors that are orthogonal at the cost of a minus sign. Doing so yields

$$T \epsilon = (-1)^4 e_1 e_1 e_2 e_2 e_3 e_4 e_4$$

Four swaps total. You can then annihilate any pair of adjacent vectors that are parallel, inserting their norms instead:

$$T \epsilon = (-1)^4 (e_1 e_1)(e_2 e_2) e_3 (e_4 e_4) = (+1)(+1)(+1)e_3 (+1) = e_3$$

This process is fully general to any number of dimensions, and will get you one of the two normal vectors (which are just opposites of each other). The magnitude of the normal vector given will be such that $Tn = \pm \epsilon$; as long as $\epsilon$ is unit, that means $T$ and $n$ will have reciprocal magnitudes.

Muphrid
  • 19,902
0

As the OP says, in 3 dimensions you find the plane normal of a plane spanned by two vectors by the cross product.

So, the hope is that in N dimensions you can find the normal of a hyperplane spanned by N-1 vectors by some sort of generalized cross product.

I just tried generalizing the cross product by heuristic induction. In 3 dimensions, I know from textbooks that the $i$th component of the cross product can be written as $$crossproduct_{3dim}(a,b)_i=(a \times b)_i=\sum_{j=1..3, k=1..3} \epsilon_{ijk} a_j b_k$$ with $\epsilon_{ijk}$ the so-called Levi-Civita symbol: $$\epsilon_{ijk}=\left\{ \begin{array}{rl} 1 & \textrm{if $ijk$ is an even permuation of(1,2,3)}\\-1 & \textrm{if $ijk$ is an odd permuation of(1,2,3)}\\0&\textrm{otherwise} \end{array} \right.$$

The Levi-Civita symbol also exists in N dimensions (see Wikipedia. It has as many subscripts as the space has dimensions). So, straight-forward, we have in 2 dimensions: $$ crossproduct_{2dim}(a)_i = \epsilon_{ij} a_j = (a_2, -a_1)$$ The far right-hand side is what we expect: It is orthogonal to $(a_1, a_2)$ - check! We have not written down the summation sign over $j$ for brevity, but summation is assumed.

Alas, it should also work in 4 dimensions:

$$ crossproduct_{4dim}(a,b,c)_i = \epsilon_{ijkl} a_j b_k c_l$$ Again, summation over j, k, and l is assumed.

For lack of analytical skills, we verify experimentally using random inputs $a, b$, and $c$, with a digital computing machine: $$a=(-0.499992, -0.368462, 0.255605 ,-0.0413499)\\ b=(0.0327672, -0.281041 ,-0.452955, 0.178865)\\ c= (0.179296, 0.434693, -0.116498, 0.0194164)\\ d = crossproduct_{4dim}(a,b,c) = (0.0073357, 0.00118694, 0.0273487, 0.0697787)$$

Verifying orthogonality using the dot product: $$a\cdot d = -4.33681 \times 10^{-19}\\ b\cdot d = 1.73472\times 10^{-18}\\ c\cdot d = 6.50521\times 10^{-19} $$

These numbers are equal to zero within the numeric uncertainty. Assumption "proven". $\square$

PS: Anyone confirming this works in all cases and/or this is equivalent to one/all of the previous answers?

fieres
  • 141
0

You don't need a cross product to find a normal vector. To find an orthogonal set of vectors, you just need a dot product or inner product. In general it's related to the Gram-Schmidt process

https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process

If you have $v_1,v_2,v_3$ being the vectors that span your hyperplane. Then you make it so $v_1, v_2, v_3$ are orthogonal via the process. Then choosing a linearly independent vector $v_4$, you calculate the normal vector from the last step of the process and that gives you the normal vector to $v_1,v_2,v_3$.

Doge Chan
  • 871