Dear friends, Thank you so much for your help. It is working now. Regards, Santanu
On Thu, 9 May 2019 at 15:19, Simon King <simon.k...@uni-jena.de> wrote: > Hi Santanu, > > Am Mittwoch, 8. Mai 2019 15:15:06 UTC+2 schrieb Santanu: >> >> I know how to define variables over BooleanPolynomialRing. >> This is as follows. >> >> n=4 >> V=BooleanPolynomialRing(n+1,['z%d'%(i) for i in range(n+1)] ) >> V.inject_variables() >> > > The above is what you could do *in an interactive session* in the case > that the number of variables isn't known in advance. If it is known that > you have exactly four variables, simply do > sage: V.<z0,z1,z2,z3> = BooleanPolynomialRing() > which would automatically define z0,...,z3 in the global namespace. > > Similarly, you can do > sage: V.<z0,z1,z2,z3> = ZZ[] > to create a polynomial ring over the integers with generators z0,...,z3 > > But the above is not what you could do *in a python module* and in a > module it is also a bad idea to inject variables. > > So, simply put the variables in a list or access them by methods of V. > > >> Can we define similar code over integers (ZZ) or rationals (QQ)? >> > > Actually I wonder if we mean the same when we say "variables over ZZ". I > mean "generators of a polynomial ring with integer coefficients". When the > number of generators isn't known in advance, but the generators are named > z0,z1,z2,..., such ring can be created, e.g., by > sage: P = PolynomialRing(ZZ, 'z', 5) > sage: P > Multivariate Polynomial Ring in z0, z1, z2, z3, z4 over Integer Ring > > However, I could imagine that you wanted to ask how to create a symbolic > variable that is assumed to take values in ZZ --- and that's totally > different from a generator of a polynomial ring over ZZ. So, if that's what > you mean, you could do (in an interactive session) > > sage: var('z0 z1 z2 z3', domain='integer') > (which would inject the variables into the global namespace) or > Z = var('z0 z1 z2 z3', domain='integer') > (which would also work in a python module and puts the variables into a > tuple). > > Also I want to store variables in an array like Z=[z0,z1,z2,z3] >> but it should be automatic. I will change only n. >> > > If you really want to work with symbolic variables, you could do > sage: n = 5 > sage: Z = var(['z{}'.format(i) for i in range(n)], domain='integer') > sage: Z > (z0, z1, z2, z3, z4) > sage: z0 > z0 > (thus, the variables are both put in a tuple and injected into the global > name space. > > However, I believe that very many Sage users work with symbolic variables > when they should better use generators of polynomial rings. So, perhaps > code such as the following > sage: P = PolynomialRing(ZZ, 'z', n) > sage: Z = P.gens() > sage: Z > (z0, z1, z2, z3, z4) > sage: P.gen(0) > z0 > sage: P.inject_variables() > Defining z0, z1, z2, z3, z4 > (the latter only in an interactive session) suites your needs better. > > Best regards, > Simon > > -- > 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 post to this group, send email to sage-support@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-support. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-support/d7d49151-5dc8-445c-b0dc-e494eb558965%40googlegroups.com > <https://groups.google.com/d/msgid/sage-support/d7d49151-5dc8-445c-b0dc-e494eb558965%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 post to this group, send email to sage-support@googlegroups.com. Visit this group at https://groups.google.com/group/sage-support. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/CAOe8sPJhKPX4jYZUPAJnjNjkGvMtj4TNCpPkcBD9zg0vo1k4ng%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.