I would do something like this (example for n=5):
```
n = 5
R = PolynomialRing(QQ, 'x', n)
x0 = R.gen(0) # A shorter alternative is R.0
f = sum((i+1)*x0^i for i in range(n+1)) # sample polynomial
p = 1
for xi in R.gens():
    p *= f.substitute({x0:xi})
    p = sum(coeff*mono for coeff, mono in list(p) if mono.degree() <= n)
``` 

timaeus schrieb am Samstag, 12. März 2022 um 12:14:26 UTC+1:

> Hello everyone,
>
> I need to compute the product: f(x_1)f(x_2)...f(x_n), where f is a 
> polynomial of degree n, and I do not need the part with total degree larger 
> than n. To reduce the computation complexity, I think it would be helpful 
> to construct an n-variable multivariate polynomial ring, with terms total 
> degree no larger than n. I found the following two possible ways to do 
> this, however, I could not make either of them work for my settings. 
>
>    1. 
>    
>    Create a multivariate polynomial ring then quotient out every monomial 
>    with total degree larger than n. However I do not know how to express this 
>    ideal.
>    2. 
>    
>    I found a link on this site concerning 
>    "set-of-polynomial-under-a-certain-degree" (I cannot post it since I am a 
>    new user) which suggests a function max_degree for polynomial rings. 
>    However, it seems there is no such a max_total_degree function for the 
>    multivariate case. 
>    
> I am new to python, sage, and this community, so thank you in advance for 
> your helpful suggestions and comments!
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/e82c6d3f-1e4e-4142-92e2-384675b60f2bn%40googlegroups.com.

Reply via email to