Ask Your Question

Roro's profile - activity

2024-03-16 06:20:56 +0200 received badge  Famous Question (source)
2020-06-30 16:42:15 +0200 received badge  Good Question (source)
2020-06-30 16:41:50 +0200 received badge  Notable Question (source)
2019-07-03 04:07:49 +0200 received badge  Popular Question (source)
2017-05-31 22:56:10 +0200 commented answer Getting the denominator takes ages...

This solution also works:

DEN = prod(d.denominator() for d in list(MolienInt.op))
2017-05-31 22:43:10 +0200 commented answer Getting the denominator takes ages...

Wow! Once again I thank you very much!

I will hopefully try this code tomorrow.

2017-05-31 21:27:18 +0200 received badge  Editor (source)
2017-05-31 17:10:20 +0200 asked a question Getting the denominator takes ages...

Hi,

I am trying to run the following code (I am including the full code, this is about representation theory but my question is much simpler):

B2 = WeylCharacterRing(['B', 2])
b2 = WeightRing(B2)
Weyl = B2(2, 2)

l = B2.rank()
z = [var('z0')]
for k in range(1, l):
    z.append(var('z' + str(k)))
u = var('u')

def toPoly(v):
    return prod([z[k]^v[k] for k in range(0, l)])

Molien = 1
W = Weyl.weight_multiplicities()
for w in W:
    T = toPoly(-w)
    Molien *= 1/(1-u*T)^W[w]

Molien = factor(Molien)
WeylDenom = prod(1-toPoly(-alpha) for alpha in b2.positive_roots())

MolienInt = factor(Molien*WeylDenom/prod(z[k] for k in range(0, l)))
DEN = MolienInt.denominator()
(...)

Everything works fine except for the very last line that seems to run forever. Yet it is pretty straightforward to get the denominator of MolienInt.

I made some tests using PolynomialRing but it also seems not to end and has also the drawback that the denominator is expanded while I need it to remain factored.

Can you help me?

2017-04-25 01:12:57 +0200 commented answer Trouble with an integral

Thank you very much for your answer and also for providing me something almost automated.

You need to remove the mult == 1 in the first computation to get the correct result.

The initial problem is to compute the Hilbert series of the ring of invariants of a certain representation of the orthogonal group. Here the test is for the standard representation of SO(4).

2017-04-25 00:46:03 +0200 commented answer Trouble with an integral

Thank you very much for your answer!

The Cauchy residue theorem was actually my first guess but since I will work with more complicated things that might take me out of the workd of rational functions, I prefered to leave Sage choose the best option.

There is indeed something fishy with the integrate function. You can actually set t equal to any value in the range (0, 1) before evaluation the integral and you'll get the corresponding value $-4\pi^2/t^2$...

Once again thank you very much!

2017-04-24 23:47:45 +0200 received badge  Supporter (source)
2017-04-24 21:23:38 +0200 received badge  Nice Question (source)
2017-04-24 17:50:23 +0200 received badge  Student (source)
2017-04-24 17:48:11 +0200 asked a question Trouble with an integral

Hi,

Let f be the following function:

f(t, z0, z1) = (z0z1 - 1)(z0 - z1)/((tz0 - 1)(tz1 - 1)(t - z0)(t - z1)z0)

f is a nice holomorphic function and I would like to compute the contour integral

\int_{|z1|=1} \int_{|z0|=1} f(t, z0, z1) dz0/z0 dz1/z1

Assuming 0 < t < 1, the result should be -4 pi^2/(t^2-1).

In Sage:

var("z0, z1, theta0, theta1")

assume(0 < t < 1)

f = (z0z1 - 1)(z0 - z1)/((tz0 - 1)(tz1 - 1)(t - z0)(t - z1)z0)

g = f.subs({z0: exp(Itheta0), z1: exp(Itheta1)})

Now if I integrate with respect to theta0 first: g.integrate(theta0, 0, 2pi) Sage answers that the integral is zero. If I integrate with respect to theta1 first: factor(g.integrate(theta1, 0, 2pi).integrate(theta0, 0, 2pi)) Sage answers that the integral is -4pi^2/t^2 which is also clearly wrong...

Maple finds the right answer.

What can I do to make Sage compute it right? (This is a test I need to compute much more complicated integrals after this so I have to make sure Sage gives me the right answer).