License

This is an implementation of Stabilized Gram-Schmidt Orthonormal Approach.
This algorithm receives a set of linearly independent vectors and generates a set of orthonormal vectors. For instance consider two vectors u = [2 2], v=[3 1], the output of the algorithm is e1 = [-0.3162 0.9487], e2= [0.9487 0.3162], which are two orthonormal vectors.
The input to the code is the set of vectors that should be given in a column-wise matrix. For instance, for the above-mentioned example the input would be:
V = [3 2;1 2]
and then we can run the code as
A = GramSchmidt(V)
and the result would be
A =
0.9487 -0.3162
0.3162 0.9487
This also works for k vectors (k>2) each one with n elements.
Another example is :
GramSchmidt([1 2 3;4 5 6;0 1 5;6 0 7;7 2 6])
ans =
0.0990 0.3569 0.1677
0.3961 0.7776 -0.1358
0 0.2167 0.8662
0.5941 -0.4589 0.3674
0.6931 -0.1020 -0.2612