Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Anybody know how I can build a orthogonal base using only a vector? I have a vector in the form $v_1 = [a, b, -a, -b]$, where $a$ and $b$ are real numbers. I did try build in the "adhoc way" but, nothing, I only got two orthogonal vectors:

$$v_1 = [a, b, -a, -b], \text{ } v_2 = [a, -b, a, -b]$$

I need more two vectors to complete the orthogonal basis $\{v_1, v_2, v_3, v_4\}$. Anybody can help me?


share|cite|improve this question
You could take any basis containing $v_1$ and apply the Gram–Schmidt process. – Trevor Wilson Sep 8 '12 at 2:16
...and to find a basis in the first place, you can just pick vectors randomly and then test to see if you have a basis. "Most" choices of four vectors will form a basis for $\mathbb{R}^4$. – Trevor Wilson Sep 8 '12 at 2:44
How do you want to use the basis? Since you are working in $\mathbb R^4$ andthe basis spans the same space, the standard basis should do. – Tpofofn Sep 8 '12 at 4:52
up vote 1 down vote accepted

May be $$v_3=[b,a,b,a]\quad v_4=[-b,a,b,-a]$$

share|cite|improve this answer
Yesss, you have build it testing or using any process? – user901366 Sep 8 '12 at 2:32
By testing.. :) – Tapu Sep 8 '12 at 2:33
Ok, thank's! :)) – user901366 Sep 8 '12 at 2:37

No need for choosing a basis a priori - you just need one starting vector. There is a straight-forward algorithm that achieves exactly what you asked for:

Pick a vector. WLOG, you chose $(x_1,x_2,x_3,x_4)$. Now write it as a quaternion: $$x_1+ix_2+jx_3+kx_4$$ Then, since multiplication by $i,j,k$ rotates this vector $90^0$ across the various axes of our 4D space, the following three vectors make your initial choice of vector into an orthonormal basis: $$i(x_1+ix_2+jx_3+kx_4)=ix_1-x_2+kx_3-jx_4\mapsto (-x_2,x_1,-x_4,x_3)$$ $$j(x_1+ix_2+jx_3+kx_4)=jx_1-kx_2-x_3+ix_4\mapsto (-x_3,x_4,x_1,-x_2)$$ $$k(x_1+ix_2+jx_3+kx_4)=kx_1+jx_2-ix_3-x_4\mapsto (-x_4,-x_3,x_2,x_1)$$

share|cite|improve this answer
Does there exist a similar procedure in n dimensions, for arbitrary n? – Pait Feb 21 at 14:36
This only works in dimensions 2 (the complex numbers), 4 (using the quaternions), and 8 (using the octonions). I would look up division algebra on wiki. – David Roberts Feb 22 at 0:00
The operation on complex, quaternions, and octonions is linear in the coefficients of the vector. The Gram or Cholesky procedures mentioned elsewhere are not. Fascinating difference! – Pait Feb 22 at 22:16

It's easy to find a basis $\{v_1, w_2, w_3, w_4\}$ of $\mathbb{R}^4$. Then use Gram–Schmidt process.

share|cite|improve this answer
To use the Gram-Schmidt process I need four vectors to build four new orthogonal vectors, or not? – user901366 Sep 8 '12 at 2:25
@user901366 Yes, that's why I wrote that you first find an (ordinary) basis containing $v_1$. – Makoto Kato Sep 8 '12 at 2:30

Assume your vector has the form $u=(u_1,u_2,u_3,u_4)$, then you have,

$$ v.u = a u_1 + b u_2 - a u_3 - b u_4 = 0 \,$$

Now, since number of variables is bigger than the number of equations, you will have an infinite number of solutions. Assume $ u_2, u_3, u_4 $ are the free variables which means you can choose them freely from the real numbers and then substitute in the above equation to find $u_1$. For example, choosing $ u_2=-a,u_3=0,u_4=0 $ and substituting in the above equation yields $ u_1=b $. So you get the vector $ v_2 = ( b,-a,0,0 ) $. Now, you can find the other two vectors.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.