Ask Your Question

Difference Between var(), QQ() and PolynomialRing()

asked 2012-09-02 20:21:54 -0500

bpeacock gravatar image

I am rather new to Sage and am trying to understand the internals of Sage better. I encountered some confusion when reading through the reference manual as to the difference between the different ring constructs used in sage. The var() function is of course used to declare a variable for symbolic manipulation but when should one use QQ[] or PolynomialRing()? I ran into this issue with the convolution() function which requires variables within functions to be declared using QQ[] or Polynomial ring and will not work with var(). Why is this? Is QQ the default namespace? How do these namespaces relate to the symbolic ring used with var? Thank you for your help!

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-09-03 07:27:41 -0500

Volker Braun gravatar image

var constructs symbolic ring (SR) variables:

sage: var('x')
sage: sin(x)
sage: x in SR
sage: x.parent()
Symbolic Ring

Polynomial rings are much better at working with polynomials, but nothing else:

sage: R.<x> = QQ[]
sage: x in PolynomialRing(QQ,1,'x')
sage: x.parent()
Univariate Polynomial Ring in x over Rational Field

Using a polynomial variable in a non-polynomial manner automatically converts it to the symbolic ring:

sage: type(x)
<type 'sage.rings.polynomial.polynomial_rational_flint.Polynomial_rational_flint'>
sage: type(sin(x))
<type 'sage.symbolic.expression.Expression'>
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2012-09-02 20:21:54 -0500

Seen: 241 times

Last updated: Sep 03 '12