1 | initial version |
To implement the Gram-Schmidt process in SageMath, follow these steps:
Here is an example implementation in SageMath:
# Define a set of linearly independent vectors
v1 = vector([1, 1, 1])
v2 = vector([1, 0, -1])
v3 = vector([1, -1, 0])
V = [v1, v2, v3]
# Create an empty list to store the orthonormal vectors
Q = []
# Iterate over the set of linearly independent vectors
for v in V:
# Compute the projection onto all previous orthonormal vectors
proj = sum([v.dot_product(u) * u for u in Q])
# Subtract the projection to obtain the orthogonal component
ortho = v - proj
# Compute the norm of the orthogonal component
norm = ortho.norm()
# Divide the orthogonal component by its norm to obtain the orthonormal vector
if norm != 0:
u = ortho / norm
else:
u = ortho
# Append the orthonormal vector to the list
Q.append(u)
# Print the resulting orthonormal vectors
print(Q)
This code will output the orthonormal vectors corresponding to the input set of linearly independent vectors.