Orthogonalizing three vectors

In [8]:
#keep
import numpy as np
import numpy.linalg as la
In [9]:
#keep
np.random.seed(13)
xorig = np.random.randn(200)
yorig = np.random.randn(200)
zorig = np.random.randn(200)

Orthonormalize $x$ and $y$ as we know:

In [10]:
x = xorig/la.norm(xorig)
In [11]:
y = yorig
y = y - x.dot(y)*x
y = y / la.norm(y)

Check:

In [12]:
#keep
print(la.norm(x))
print(la.norm(y))
print(x.dot(y))
1.0
1.0
6.93889390391e-18

Now what to with $z$?

In [13]:
z = zorig
z = z - np.dot(z, x)*x - np.dot(z,y)*y
z = z / la.norm(z)

Check:

In [14]:
#keep
print(la.norm(z))
print(x.dot(z))
print(y.dot(z))
1.0
-4.85722573274e-17
-1.73472347598e-17
In [ ]:
 
In [ ]: