Ask Your Question
1

smith form, gaussian integers

asked 2017-03-15 21:27:39 +0100

JCBR gravatar image

Hello there, I would like to be able to compute smith normal forms for matrices with coefficients in some specific ring, to be choosen each time.

I am not able to properly creat a matrix in $\mathbb{Z}[\sqrt{-1}]$. For instance

M=matrix([[2+I,0],[0,1]]) then M.change_ring(ZZ[I])

Would lead to an error. On the ogher hand, M=matrix([[2+I,0],[0,1]]) followed by M.smith_form() would lso lead to an error since this time my matrix has coefficients in SR, the symbolic ring, and the normal_form()is not implemented.

However,

A = QQ['x'] #delcaring the ring

M=matrix(A,[[x-1,0,1],[0,x-2,2],[0,0,x-3]]) # building the matrix

M.smith_form()# computing the normal form

Actually works.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-03-16 00:06:18 +0100

tmonteil gravatar image

Indeed, when you write:

sage: M=matrix([[2+I,0],[0,1]])

The number I belongs to the symbolic ring, hence the matrix M is defined over the symbolic ring:

sage: M.parent()
Full MatrixSpace of 2 by 2 dense matrices over Symbolic Ring

You can chant this by redefining I to belong to the gaussian integers:

sage: R = ZZ[I] ; R
Gaussian Integers in Number Field in I with defining polynomial x^2 + 1
sage: I = R.basis()[1]
sage: M=matrix([[2+I,0],[0,1]]) 
sage: M.parent()
Full MatrixSpace of 2 by 2 dense matrices over Gaussian Integers in Number Field in I with defining polynomial x^2 + 1

Then, you can ask for the Smith form:

sage: M.smith_form()
(
[    1     0]  [    0     1]  [ 1 -1]
[    0 I + 2], [   -1 I + 2], [ 1  0]
)
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

Stats

Asked: 2017-03-15 21:27:39 +0100

Seen: 1,837 times

Last updated: Mar 16 '17