Tool to calculate orthonormal bases of the subspace generated by vectors using the Gram-Schmidt algorithm (2D Plan, 3D or 4D Space) in formal calculation
Gram-Schmidt Orthonormalization - dCode
Tag(s) : Matrix
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
Tool to calculate orthonormal bases of the subspace generated by vectors using the Gram-Schmidt algorithm (2D Plan, 3D or 4D Space) in formal calculation
From a set of vectors $ \vec{v_i} $ and its corresponding orthonormal basis, composed of the vectors $ \vec{e_i} $, then the Gram-Schmidt algorithm consists in calculating the orthogonal vectors $ \vec{u_i} $ which will allow to obtain the orthonormal vectors $ \vec{e_i} $ whose components are the following (the operator . is the scalar product on the vector space)
$$ \vec{u_1} = \vec{v_1} \ , \quad \vec{e_1} = \frac{ \vec{u_1} } { \| \vec{u_1} \| } $$
$$ \vec{u_2} = \vec{v_2} - \frac{ \vec{u_1} . \vec{v_2} }{ \vec{u_1} . \vec{u_1} } \vec{u_1} \ , \quad \vec{e_2} = \frac{ \vec{u_2} } { \| \vec{u_2} \| } $$
$$ \vec{u_3} = \vec{v_3} - \frac{ \vec{u_1} . \vec{v_3} }{ \vec{u_1} . \vec{u_1} } \vec{u_1} - \frac{ \vec{u_2} . \vec{v_3} }{ \vec{u_2} . \vec{u_2} } \vec{u_2} \ , \quad \vec{e_3} = \frac{ \vec{u_3} } { \| \vec{u_3} \| } $$
$$ \vec{u_k} = \vec{v_k} - \sum_{j=1}^{k-1} { \frac{ \vec{u_j} . \vec{v_k} }{ \vec{u_j} . \vec{u_j} } \vec{u_j} } \ , \quad \vec{e_k} = \frac{ \vec{u_k} } { \| \vec{u_k} \| } $$
Example: Vectors $ \vec{v_1} = (1,2) $ and $ \vec{v_2} = (1,0) $ from $ \mathbb{R}^2 $ (2D plane) have for orthonormal basis $ \vec{e_1} = \left( \frac{1}{\sqrt{5}}, \frac{2}{\sqrt{5}} \right) $ and $ \vec{e_2} = \left( \frac{2}{\sqrt{5}}, \frac{-1}{\sqrt{5}} \right) $
dCode retains ownership of the online 'Gram-Schmidt Orthonormalization' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any function (convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (PHP, Java, C#, Python, Javascript, Matlab, etc.) no data, script or API access will be for free, same for Gram-Schmidt Orthonormalization download for offline use on PC, tablet, iPhone or Android !
Please, check our community Discord for help requests!