# How to find perpendicular vector to another vector?

How do I find a vector perpendicular to a vector like this: $$3\mathbf{i}+4\mathbf{j}-2\mathbf{k}?$$ Could anyone explain this to me, please?

I have a solution to this when I have $3\mathbf{i}+4\mathbf{j}$, but could not solve if I have $3$ components...

When I googled, I saw the direct solution but did not find a process or method to follow. Kindly let me know the way to do it. Thanks.

• Choose two coordinates, switch them, add a minus sign, and complete with zeroes. For example: choosing i and j might yield 4i-3j, choosing i and k might yield 2i+3k, and choosing j and k might yield 2j+4k. – Did Apr 26 '12 at 19:09
• Pick any vector not colinear to your vector and take their cross product. – N. S. Apr 26 '12 at 20:26
• Not to de-rail the thread, but does anyone know why this particular question has over 15k views? – Jesse Madnick Feb 27 '13 at 7:51
• @JesseMadnick Useful in computer graphics. You often have a lot of normal vectors for the surfaces of objects, but to turn those into proper transformation matrices, you need perpendicular vectors. – Brendan Abel Oct 1 '16 at 0:52
• There are a lot of detailed mathy answers here, but the most practical answer is found only in the comment from @Did above. Just make sure that the two components you switch are not both zero. I lack the reputation to add an answer, but here's a complete and simple solution in C form: planeVec = (normal.x == normal.y ? new Vector3(-normal.z, 0, normal.x) : new Vector3(-normal.y, normal.x, 0)) – Joe Strout Jan 3 '17 at 16:23

There exists an infinite number of vectors in 3 dimension that are perpendicular to a fixed one. They should only satisfy the following formula: $$(3\mathbf{i}+4\mathbf{j}-2\mathbf{k}) \cdot v=0$$

For finding all of them, just choose 2 perpendicular vectors, like $v_1=(4\mathbf{i}-3\mathbf{j})$ and $v_2=(2\mathbf{i}+3\mathbf{k})$ and any linear combination of them is also perpendicular to the original vector: $$v=((4a+2b)\mathbf{i}-3a\mathbf{j}+3b\mathbf{k}) \hspace{10 mm} a,b \in \mathbb{R}$$

• There are many possible notation, I choose to use the same notation of the question, but other choice are good as well. $i$,$j$,$k$ refers to vectors $(1,0,0)$, $(0,1,0)$ and $(0,0,1)$, so it is basically the same thing after you do vector-scalar multiplication. – carlop Dec 14 '12 at 13:49
• @NiklasR Since you wanted a name, $\mathbf{i}$, $\mathbf{j}$, and $\mathbf{k}$ are called the (classical) Hamiltonian Quaternions. – Alexander Gruber Jul 5 '14 at 20:23
• @NiklasR you can find that notation being used in the Stieg Larsson. – MonsieurGalois Jun 20 '16 at 3:50
• @MonsieurGalois: would that be the famous lost fourth novel, The Girl Who Manipulated Vectors? – Anton Sherwood Sep 20 '16 at 18:51
• Agreeing with @electronpusher, it is more appropriate to refer to i, j, k as "Unit vectors representing the axes of Cartesian coordinates". – ToolmakerSteve Apr 30 '17 at 20:53

Take cross product with any vector. You will get one such vector.

• unless that other vector is parallel to the original vector, in which case you will get $(0,0,0)$ – g.rocket Aug 7 '15 at 3:52
• or that other vector is (0, 0, 0) – richard1941 Jun 12 at 1:35

You just need to find any vector $v \neq 0$ such that $v \cdot (3\mathbf{i}+4\mathbf{j}-2\mathbf{k}) = 0$.

There is no unique solution, any one will do. To save typing, let $p = 3\mathbf{i}+4\mathbf{j}-2\mathbf{k}$.

Pick a vector $x$, that is not on the line through the origin and $p$. Take $x = 3\mathbf{i}$, for example.

Construct a vector perpendicular to $p$ in the following way: Find a value of $t$ so that $(x+t p) \cdot p = 0$. Then the vector $v=x+t p$ will be perpendicular to $p$.

In my example, $(x+t p) = (3 + 3 t)\mathbf{i}+4 t \mathbf{j}-2t\mathbf{k}$, and $(x+t p) \cdot p = 9 + 29 t$. By choosing $t=-\frac{9}{29}$, the vector $v=x+t p$ is now perpendicular to $p$.

• The zero vector is perpendicular to any vector. – Michael Hoppe Jun 11 at 17:37
• @MichaelHoppe: What is your point? – copper.hat Jun 11 at 17:39
• I'm wondering why you excluded the (trivial) solution $v=0$. – Michael Hoppe Jun 11 at 17:56
• Typically perpendicular implies non zero. There is no point in a trivial answer. – copper.hat Jun 11 at 18:01

A related problem is to construct an algorithm that finds a non-zero perpendicular vector without branching. If the input vector is N = (a,b,c), then you could always choose T = (c,c,-a-b) but T will be zero if N=(-1,1,0). You could always check to see if T is zero, and then choose T = (-b-c,a,a) if it is, but this requires a test and branch. I can't see how to do this without the test and branch.

A suggested solution without a branch could be: Construct an array of 2 vector elements in the following way:

arr[0] = (c,c,-a-b) arr[1] = (-b-c, a,a)
int selectIndex = ((c != 0) && (-a != b)) // this is not a branch
perpendicularVector = arr[selectIndex]


If (c, c, -a-b) is zero, selectIndex is 1 and the other vector will be selected.

• Clever -- I like it. – wcochran Aug 10 '16 at 14:49
• There is bug: Input (0, 0.707, -0.707); Output (0,0,0) – Ondrej Petrzilka Jan 17 '17 at 12:18
• How is && performed without a branch? Logical AND Operator says "The second operand is evaluated only if the first operand evaluates to true (nonzero).". That implies a branch (to avoid evaluating the second operand). To avoid a branch, you must use & instead. Suggest that change as an edit. [I can't make the edit, because it is only a single character; edit less than 6 characters is rejected. I'm not going to do some bogus other characters just to submit the correction.] – ToolmakerSteve Apr 30 '17 at 20:58
• // this is not a branch is flat-out incorrect, as ToolmakerSteve said. The entire point of the short-circuited AND is that it conditionally skips the second, which requires a branch at some level -- either in the CPU pipeline or the Assembly -- which... is a branch. – Nic Hartley Apr 9 '18 at 3:15
• @Stuntddude The sarcasm is utterly unnecessary, but thanks for pointing it out. My first comment is still correct; please fix that when you get a chance. – Nic Hartley Aug 5 '18 at 1:37

Definition of the Dot Product:

$\vec{a} \cdot \vec{b}$ = ( $a_{1} , a_{2}$ ) $\cdot$ ( $b_{1} , b_{2}$ ) = $a_{1}b_{1} + a_{2}b_{2}$

also known as the scalar product or inner product

$\mathbf{\vec{a} \cdot \vec{b}}$ is a one "number" answer

Orthogonal Vectors:

Two vectors are orthogonal (perpendicular) if and only if $\ \mathbf{\vec{a} \cdot \vec{b} = 0}$ in other words... two vectors are perpendicular if their DOT PRODUCT is ZERO

Example:

Let

$\vec{a}$ = ( 8 , -4 )

that is:

$a_{1}$ = 8

$a_{2}$ = -4

Find a vector $\mathbf{\vec{r}}$ that is perpendicular to $\mathbf{\vec{a}}$:

$\vec{r}$ = (x, y);

that is:

$b_{1} = x$

$b_{2} = y$

$\vec{a} \cdot \vec{r} = 8x + (-4y) = 0 \Rightarrow$

$\Rightarrow 8x - 4y = 0 \Rightarrow$

$8(1) - 4(2) = 0 \Rightarrow \mathbf{\vec{r} = (1, 2)} \Rightarrow$ one solution

$8(2) - 4(4) = 0 \Rightarrow \mathbf{\vec{r} = (2, 4)} \Rightarrow$ other solution

$8(-1) - 4(-2) = 0 \Rightarrow \mathbf{\vec{r} = (-1, -2)} \Rightarrow$ other solution

... as Rebecca said: << Keep in mind there will be an infinite number of perpendicular vectors >> ... Here the pdf source

• Just so you know, you can make a dot in MathJax with \cdot and subscripts with _. For more info, check out meta.math.stackexchange.com/questions/5020/…. – user137731 Jul 5 '14 at 19:46
• @Bye_World, Thanks a lot! :-) – Riccardo Volpe Jul 5 '14 at 19:49
• Nice for 2D, but the OP was asking about a 3D scenario. – electronpusher Feb 21 '17 at 1:50
• This is not an answer to the question. Question-asker states that he knows how to solve in 2D (two axes or components), but doesn't understand how to solve in 3D. You are showing the solution to 2D. Similarly, you misunderstand Rebecca's comment about there being an infinite number of perpendicular vectors. All your solution vectors are in the same direction, only varying by length. Indeed, this is what happens in 2D. However, Rebecca is talking about 3D, in which the DIRECTIONS of the solutions also vary. – ToolmakerSteve Apr 30 '17 at 21:08

A vector perpendicular to the given vector A can be rotated about this line to find all positions of the vector. To find them,

if $A \cdot B =0$ and $A \cdot C =0$ then $B,C$ lie in a plane perpendicular A and also $A \times ( B \times C )$= 0, for any two vectors perpendicular to A. (Last equation typo edited late)

A geometric solution would be as follows. The plane $3x+4y-2z=0$ is perpendicular to the vector $3i+4j−2k$. Any vector in that plane is thus perpendicular this vector. Thus you may choose any $x$, $y$ and $z$ that lie in the plane $3x+4y-2z=0$ and the resulting $xi+yj+zk$ will be perpendicular to $3i+4j−2k$,

The dot product of two perpendicular vectors are always 0 so if you (ai+bj+ck)*(di+ej+fk)=0 you can solve for the different variables. If you have one vector than the infinite amount of perpendicular vectors will form a plane that is perpendicular to the original vector. If you know one or two of the coordinates of the desired perpendicular line than you can find the corresponding vector(s) on that plane.

All vectors perpendicular to the given vector form a plane. If $v_1$ and $v_2$ are perpendicular to the given vector $v = 3i +4j -2k$, then the dot products $v\cdot v_1 =0$ and $v\cdot v_2 = 0$. If $v_1 = 2i -j + k$ and $v_2 = 2i +j +5k$, then a plane formed by any vector $v_3 = av_1 +bv_2$; where $a$ and $b$ are scalars, will be normal to the given vector $v$.

Remember: There exist infinite vector in 3 dimension that are perpendicular to a fixed one. Now, Let $v\neq 0$ be the vector whose is $xi+yj+zk$. So , $v$ is perpendicular to the vector $3i+4j-2k$. Therefore, $v\cdot\langle 3i+4j−2k\rangle=0$. $$\langle xi+yj+zk\rangle\cdot \langle3i+4j−2k\rangle =0$$ so $3x+4y-2z=0$ (1) where $i\cdot i =j\cdot j=k\cdot k=1$.

Now, there are three unknown variable such x, y and z in (1). You can choose any two variable whatever you like. Let $y=2$ and $z=1$,
then $x=-2$ from (1),

One of the vector is $(-2i+2j+k)$. Similarly, you can choose one of two variables from (1) , then find the third variable. So, you can find infinite perpendicular vectors to the vector $3i+4j-2k$.

Given $n-1$ linearly independent vectors, $\{v_j\}_{j=1}^{n-1}$ in $\mathbb{R}^n$, we can find a non-zero vector, $u$, perpendicular to all of them.

If we set \begin{align} u_1&=\det\begin{bmatrix} v_{1,1}&v_{2,1}&\cdots&v_{n-1,1}&1\\ v_{1,2}&v_{2,2}&\cdots&v_{n-1,2}&0\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ v_{1,n}&v_{2,n}&\cdots&v_{n-1,n}&0 \end{bmatrix}\\ u_2&=\det\begin{bmatrix} v_{1,1}&v_{2,1}&\cdots&v_{n-1,1}&0\\ v_{1,2}&v_{2,2}&\cdots&v_{n-1,2}&1\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ v_{1,n}&v_{2,n}&\cdots&v_{n-1,n}&0 \end{bmatrix}\\ &\vdots\\ u_n&=\det\begin{bmatrix} v_{1,1}&v_{2,1}&\cdots&v_{n-1,1}&0\\ v_{1,2}&v_{2,2}&\cdots&v_{n-1,2}&0\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ v_{1,n}&v_{2,n}&\cdots&v_{n-1,n}&1 \end{bmatrix}\\ \end{align} then $$u\cdot w=\det\begin{bmatrix} v_{1,1}&v_{2,1}&\cdots&v_{n-1,1}&w_1\\ v_{1,2}&v_{2,2}&\cdots&v_{n-1,2}&w_2\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ v_{1,n}&v_{2,n}&\cdots&v_{n-1,n}&w_n \end{bmatrix}$$ If we replace $w$ by any of the $v_j$, the determinant will be $0$ because of duplicate columns; thus, $u\cdot v_j=0$.

$\{v_j\}_{j=1}^{n-1}$ cannot span $\mathbb{R}^n$, so there must be some $v_n$ that is not in the span of $\{v_j\}_{j=1}^{n-1}$. This means that $\{v_j\}_{j=1}^n$ are independent, and so \begin{align} u\cdot v_n&=\det\begin{bmatrix} v_{1,1}&v_{2,1}&\cdots&v_{n-1,1}&v_{n,1}\\ v_{1,2}&v_{2,2}&\cdots&v_{n-1,2}&v_{n,2}\\ \vdots&\vdots&\ddots&\vdots&\vdots\\ v_{1,n}&v_{2,n}&\cdots&v_{n-1,n}&v_{n,n} \end{bmatrix}\\ &\ne0 \end{align} In particular, $u\ne0$.

• @richard1941: Not familiar with that symbol. Do you have a link for it? – robjohn Jun 12 at 4:26

One way to do this is to express the vector in terms of a spherical coordinate system. For example

$$\boldsymbol{e}= \pmatrix{a \\ b \\ c} = r \pmatrix{ \cos\varphi \cos\psi \\ \sin\varphi \cos\psi \\ \sin\psi}$$

where $r=\sqrt{a^2+b^2+c^2}$, $\tan(\varphi) = \frac{b}{a}$ and $\tan{\psi} = \frac{c}{\sqrt{a^2+b^2}}.$

A choice of two orthogonal vectors can be found with \begin{aligned} \boldsymbol{n}_1 & = \frac{{\rm d} \boldsymbol{e}}{{\rm d} \varphi} = r\pmatrix{-\sin \varphi \cos\psi \\ \cos\varphi \cos\psi \\ 0}& \boldsymbol{n}_2 & = \frac{{\rm d} \boldsymbol{e}}{{\rm d} \psi} = r\pmatrix{-\cos\varphi \sin\psi \\ -\sin\varphi \sin\psi \\ \cos\psi} \end{aligned}

Of course any non-zero linear combination of these two vectors is also orthogonal

$$\boldsymbol{n} = \cos(t) \boldsymbol{n}_1 + \sin(t) \boldsymbol{n}_2$$

where $t$ is an rotation angle about the vector $\boldsymbol{e}$.

Put it all together to make a family of orthogonal vectors in terms of $t$ as

$$\boldsymbol{n} = \pmatrix{-b \cos(t) - \frac{a c}{\sqrt{a^2+b^2}} \sin(t) \\ a \cos(t) - \frac{b c}{\sqrt{a^2+b^2}} \sin(t) \\ \sqrt{a^2+b^2} \sin(t)}$$

For $\boldsymbol{e} = \pmatrix{3 & 4 & -2}$ the aboves gives

$$\boldsymbol{n} = \pmatrix{ \frac{6}{4} \sin(t)-4 \cos(t) \\ 3 \cos(t) - \frac{8}{5} \sin(t) \\ 5 \sin(t) } \longrightarrow \begin{cases} \boldsymbol{n} = \pmatrix{-4 & 3 & 0} & t =0 \\ \boldsymbol{n} =\pmatrix{\frac{6}{5} & \frac{8}{5} & 5} & t = \frac{\pi}{2} \end{cases}$$

• I leave it to the reader to check that $\boldsymbol{n} \cdot \boldsymbol{e} = 0$ and thus the two vectors are orthogonal. – ja72 Mar 1 '18 at 23:19

## protected by EmilyDec 11 '14 at 15:02

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).