Ask Your Question
2

How can Sagemath be used to implement the Gram-Schmidt process?

asked 2021-09-23 11:00:00 +0000

qstack gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-02-18 03:00:00 +0000

lakamha gravatar image

To implement the Gram-Schmidt process in SageMath, follow these steps:

  1. Define a set of linearly independent vectors.
  2. Create an empty list to store the orthonormal vectors.
  3. Iterate over the set of linearly independent vectors.
  4. For each vector, compute its projection onto all previous vectors in the list of orthonormal vectors.
  5. Subtract the projection from the original vector to obtain the orthogonal component.
  6. Compute the norm of the orthogonal component and divide the orthogonal component by this value to obtain the orthonormal vector.
  7. Append the orthonormal vector to the list of orthonormal vectors.

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.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2021-09-23 11:00:00 +0000

Seen: 1 times

Last updated: Feb 18 '22