gives an orthonormal basis found by orthogonalizing the vectors vi.


gives an orthonormal basis found by orthogonalizing the elements ei with respect to the inner product function f.

Details and Options

  • Orthogonalize[{v1,v2,}] uses the ordinary scalar product as an inner product.
  • The output from Orthogonalize always contains the same number of vectors as the input. If some of the input vectors are not linearly independent, the output will contain zero vectors.
  • All nonzero vectors in the output are normalized to unit length.
  • The inner product function f is applied to pairs of linear combinations of the ei.
  • The ei can be any expressions for which f always yields real results. »
  • Orthogonalize[{v1,v2,},Dot] effectively assumes that all elements of the vi are real. »
  • Orthogonalize by default generates a GramSchmidt basis.
  • Other bases can be obtained by giving alternative settings for the Method option. Possible settings include: "GramSchmidt", "ModifiedGramSchmidt", "Reorthogonalization", and "Householder".
  • Orthogonalize[list,Tolerance->t] sets to zero elements whose relative norm falls below t.


open allclose all

Basic Examples  (1)

Find an orthonormal basis for two 3D vectors:

Find the coefficients of a general vector with respect to this basis:

Scope  (13)

Basic Uses  (6)

Orthogonalize a set of machine-precision vectors:

Orthogonalize complex vectors:

Orthogonalize exact vectors:

Orthogonalize arbitrary-precision vectors:

Orthogonalize symbolic vectors:

Simplify the result assuming a and b are real-valued:

Large numerical matrices are handled efficiently:

Special Matrices  (4)

Orthogonalize the rows of a sparse matrix:

Orthogonalize the rows of structured matrices:

Orthogonalizing a diagonal matrix produces another diagonal matrix:

Orthogonalize HilbertMatrix:

ּGeneral Inner Products  (3)

Find a symbolic basis, assuming all variables are real:

Orthogonalize vectors that are not lists using an explicit inner product:

Specify the inner product using a pure function:

Options  (3)

Tolerance  (1)

Below the tolerance, two vectors are not recognized as linearly independent:

Method  (2)

m forms a set of vectors that are nearly linearly dependent:

Deviation from orthonormality for the default method:

Deviation for all of the methods:

For a large numerical matrix, the Householder method is usually fastest:

Applications  (1)

Derive normalized Legendre polynomials by orthogonalizing powers of :

Derive normalized Hermite polynomials:

Properties & Relations  (6)

In dimensions, there can be at most elements in the orthonormal basis:

Most sets of random -dimensional vectors are spanned by exactly basis vectors:

With the default method, the first element of the basis is always a multiple of the first vector:

For linearly independent vectors, the result is an orthonormal set:

Verify using matrix multiplication:

For linearly independent vectors, the result is a set orthonormal with the given inner product:

Verify orthonormality:

Orthogonalize[m] is related to QRDecomposition[Transpose[m]]:

They are the same up to sign:

Wolfram Research (2007), Orthogonalize, Wolfram Language function, https://reference.wolfram.com/language/ref/Orthogonalize.html.


Wolfram Research (2007), Orthogonalize, Wolfram Language function, https://reference.wolfram.com/language/ref/Orthogonalize.html.


@misc{reference.wolfram_2020_orthogonalize, author="Wolfram Research", title="{Orthogonalize}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Orthogonalize.html}", note=[Accessed: 16-April-2021 ]}


@online{reference.wolfram_2020_orthogonalize, organization={Wolfram Research}, title={Orthogonalize}, year={2007}, url={https://reference.wolfram.com/language/ref/Orthogonalize.html}, note=[Accessed: 16-April-2021 ]}


Wolfram Language. 2007. "Orthogonalize." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Orthogonalize.html.


Wolfram Language. (2007). Orthogonalize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Orthogonalize.html