# Define matrix indexed by partitions

I want to define the following matrix in sage: $J$ is of size Partitions(n), and $J_{\lambda, \mu} = 1$ if $\lambda'=\mu$ and $0$ else. Can someone please help?

edit retag close merge delete

Sort by » oldest newest most voted

I am not sure about the notation $\lambda'$ so let me assume that it is the conjugate.

First, to build a matrix, you have to index the partitions, which is easy with the enumerate function:

sage: n = 6
sage: P = Partitions(n)
sage: m = matrix(ZZ, P.cardinality())
sage: list(enumerate(P))
[(0, [6]),
(1, [5, 1]),
(2, [4, 2]),
(3, [4, 1, 1]),
(4, [3, 3]),
(5, [3, 2, 1]),
(6, [3, 1, 1, 1]),
(7, [2, 2, 2]),
(8, [2, 2, 1, 1]),
(9, [2, 1, 1, 1, 1]),
(10, [1, 1, 1, 1, 1, 1])]


In the other way, given a partition, you need to be able to find its index, which is doable with this dictionary:

sage: part_to_int = {p:i for i,p in enumerate(P)}


Now, you can construct your matrix:

sage: for i,p in enumerate(P):
....:     j = part_to_int[p.conjugate()]
....:     m[i,j] = 1


You have:

sage: m
[0 0 0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[1 0 0 0 0 0 0 0 0 0 0]

sage: m^2
[1 0 0 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 0 0 1]


If $\lambda'$ does not denote the conjugate, you can adapt by replacing p.conjugate() with your favorite function.

more

This was exactly what I was looking for. Thank you so much.

( 2021-06-29 22:30:34 +0100 )edit

Potential alternatives:

more