Ask Your Question
1

orthogonalization and orthonormalization of vectors under integer mod

asked 2022-01-30 13:44:45 +0100

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)]
edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
2

answered 2022-01-30 15:48:35 +0100

tmonteil gravatar image

updated 2022-01-30 15:50:44 +0100

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).

edit flag offensive delete link more
2

answered 2022-01-30 18:16:37 +0100

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() ]
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.

Add Answer

Question Tools

1 follower

Stats

Asked: 2022-01-30 13:44:45 +0100

Seen: 710 times

Last updated: Jan 30 '22