First time here? Check out the FAQ!

Ask Your Question
1

orthogonalization and orthonormalization of vectors under integer mod

asked 3 years ago

osi gravatar image

how can I get first orthogonal(Gram–Schmidt process) and then orthonormal of basis vector list under integer mod.

l=[(1,2,3),(1,5,6)]
basis=[vector(GF(29),i) for i in l]
print(basis)
#[(1,2,3),(1,5,6)]
Preview: (hide)

2 Answers

Sort by » oldest newest most voted
2

answered 3 years ago

tmonteil gravatar image

updated 3 years ago

Here is a partial answer : instead of putting your "basis" in a list, you should put it in a matrix, so that you could benefit from the methods available there.

sage: M = matrix(basis)
sage: M
[1 2 3]
[1 5 6]
sage: M.parent()
Full MatrixSpace of 2 by 3 dense matrices over Finite Field of size 29
sage: M.gram_schmidt()
AttributeError: 'sage.rings.finite_rings.integer_mod.IntegerMod_int' object has no attribute 'conjugate'

Unfortunately, to compute the Gram-Schmidt orthogonalization of M, Sage needs to find the conjugate of elements GF(29), which seems not defined (if you replace GF(29) with ZZ, everythin seems fine).

Preview: (hide)
link
2

answered 3 years ago

Max Alekseyev gravatar image

You can perform Gram–Schmidt over QQ and then change ring to GF(29):

M = Matrix( QQ, [(1,2,3),(1,5,6)] )
[ t.change_ring(GF(29)) for t in M.gram_schmidt() ]
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 3 years ago

Seen: 928 times

Last updated: Jan 30 '22