Ask Your Question

qfaes's profile - activity

2023-11-13 20:48:17 +0200 received badge  Notable Question (source)
2023-11-10 16:25:50 +0200 asked a question How to compute in exterior powers of a ring

How to compute in exterior powers of a ring Consider $H := \mathbb{Z}^n$. I have a finite family of matrices $M_i$ , act

2022-12-22 12:13:31 +0200 received badge  Popular Question (source)
2021-12-11 14:15:18 +0200 received badge  Popular Question (source)
2021-01-24 19:28:49 +0200 received badge  Nice Answer (source)
2021-01-22 18:27:33 +0200 received badge  Teacher (source)
2021-01-22 18:27:33 +0200 received badge  Self-Learner (source)
2021-01-22 18:26:44 +0200 received badge  Nice Question (source)
2021-01-22 15:28:06 +0200 answered a question How to do low degree computation in a Free Algebra ?

Another way (less complete than @slelievre's answer but more efficient for just a quick computation) is to compute directly in the free algebra, using the following instead of the product:

def fast_product(a, b):
    res = F.zero()
    a = F(a)
    b = F(b)
    data_a = [(w.to_word(), cf) for w, cf in a] 
    data_b = [(w.to_word(), cf) for w, cf in b]
    for wa, cfa  in data_a:
        for wb, cfb in data_b:
            if len(wb) + len(wa) <= k:
                res += cfa * cfb * F.monomial(wa) * F.monomial(wb)  
    return res
2021-01-22 15:25:56 +0200 commented answer How to do low degree computation in a Free Algebra ?

Ok , thanks for the information.

2021-01-19 17:22:11 +0200 commented answer How to do low degree computation in a Free Algebra ?

Another way (less complete but more efficient for just a quick computation) is to compute directly in the Free algebra, but instead of using the product, use the following:

def fast_product(a,b): res = 0 a = F(a) b = F(b) data_a =[(w.to_word(), cf) for w, cf in a]
data_b =[(w.to_word(), cf) for w, cf in b] for wa,cfa in data_a: for wb,cfb in data_b: if len(wb) + len(wa) <= k: res = res + cfacfbF.monomial(wa)*F.monomial(wb)
return res

2021-01-18 12:56:45 +0200 commented answer Letter separator in words when alphabet has multicharacter letters

Thank you !

2021-01-18 11:56:22 +0200 asked a question Letter separator in words when alphabet has multicharacter letters

Why do i get:

sage: W = FiniteWords(['a','b'])
sage: [w for w in W.iterate_by_length(2)]

returns as I wish

[word: aa, word: ab, word: ba, word: bb]

but

sage: W = FiniteWords(['a1','a2'])
sage: [w for w in W.iterate_by_length(2)]

returns

[word: a1,a1, word: a1,a2, word: a2,a1, word: a2,a2]

I do not want the commas to appear here, how can I get

[word: a1a1, word: a1a2, word: a2a1, word: a2a2]

instead?

2021-01-18 11:25:30 +0200 commented answer How to do low degree computation in a Free Algebra ?

For now, the solution only works if your generators names are one letter (for example it does not work with x_1,x_2...).

EDIT : The solution for this is to add the command WordOptions(letter_separator='') before usinfg the words command in the code of slelievre.

2021-01-17 20:18:48 +0200 commented answer How to do low degree computation in a Free Algebra ?

Thank you, it seems to answer my question, i ll try this tomorrow !

2021-01-14 16:03:58 +0200 asked a question How to do low degree computation in a Free Algebra ?

Say $F$ is a free algebra over $n$ generators of degree $1$, and i want to compute in this algebra but i only need to get my expressions up to degree $k$. For example, if $k=2$, $(ab +a)*b$ should be $ab$.

For now, i have been doing the computation and truncating everything above degree $k$, but the time complexity is too high when i launch a big computation.

I am actually asking how to compute in the tensor Algebra $T(V)$ modulo $T_{\geq k}(V)$. For free Lie algebras, this can be done using nilpotent Lie algebras, (for example L = LieAlgebra(QQ, 3, step=3) implements a 3-nilpotent free Lie algebra). How to do this with free algebras ?

2021-01-13 19:31:58 +0200 commented answer How to compute in the Tensor Algebra $T(V)$ ?

Thank you so much, that is exactly what I need ! So the algebra element is secretly a list of tuples ?

2021-01-13 19:30:49 +0200 received badge  Supporter (source)
2021-01-13 16:21:54 +0200 asked a question How to compute in the Tensor Algebra $T(V)$ ?

I need to make some computations in low degree in the Tensor algebra $T(V)$ of a rational vector space $V$, but i cannot find a good way of doing this. I could use FreeAlgebras, but then i cannot get access to the summands in my element : for example i want to be able to retrieve $a$ $b$ and $c$ from the element $abc $ (whenever the element is homogeneous).

The reason for this is I need to define a 'cycle' function that associates $Wa$ to a tensor $aW$ when $W$ is a tensor and $a \in V$.

2020-11-30 11:13:56 +0200 answered a question Quotients in CombinatorialFreeModule

It is pointed out by FrédéricC in the comments that the reason for this is simply that the quotient is no more a free module, hence the wrong result. Nevertheless, this could return an error message/warning. I have the feeling that this should be done soon as it is in some Todo list on the Sage documentation : https://doc.sagemath.org/html/en/refe...

2020-11-30 11:13:00 +0200 received badge  Organizer (source)
2020-11-30 10:58:22 +0200 received badge  Editor (source)
2020-11-30 10:56:05 +0200 commented question Quotients in CombinatorialFreeModule

Thanks for the answears.

This is infortunate indeed. My question seems stupid now because FrédéricC answear clearly explains why it does not work, but i still think Sage should give a warning/error message when doing this kind of quotients, as i lost some time understanding why my computations were wrong.

2020-11-19 13:09:07 +0200 received badge  Student (source)
2020-11-19 00:39:07 +0200 asked a question Quotients in CombinatorialFreeModule

The program

sage: T = CombinatorialFreeModule(ZZ, 'x')
sage: Q = T.quotient_module([2*T.monomial('x')])
sage: Q
Free module generated by {} over Integer Ring

says that Q is a trivial Z-module, which does not make sense.

If CombinatorialFreeModule handle only quotients over Q, then it should not return a Z-module when quotienting over Z...

Am i missing something here ? The documentation on CombinatorialFreeModule is incomplete, and using FreeModule would make a lot of my previous programs useless.