Upgrading from:


Orthogonalize, Normalize, and Projection have been added to the built-in Mathematica kernel. Normalize can now take an arbitrary norm function.


Orthogonalize gives an orthonormal basis found by orthogonalizing the vectors:

Version 5.2 << LinearAlgebra`Orthogonalization`;
GramSchmidt[{{3, 4, 2}, {2, 5, 2}, {1, 2, 6}}]

Orthogonalize can generate an orthonormal basis for the vectors with respect to an inner product function which is the second argument of the function:

Version 5.2 GramSchmidt[{1, x, x^2, x^3, x^4}, 
  InnerProduct -> (Integrate[#1 #2, {x, -1, 1}] &)] // Simplify


Normalize symbolic vectors:

Version 5.2 Normalize[{a, b, c}]

Use an arbitrary norm function:

Version 5.2 Normalize[{x, y, z}, f] returns unevaluated


This finds the projection of a vector onto another vector assuming x, y, a, b are Real:

Version 5.2 Projection[{x, y}, {a, b}]

Use symbolic vectors:

Householder was available in previous versions of Mathematica and is now available on the web at library.wolfram.com/infocenter/MathSource/6829.