Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
1

Constant coefficient of symbolic expression

asked 4 years ago

philipp7 gravatar image

updated 4 years ago

Suppose we have the following

sage: var("x,y,z")
sage: expr = x*y+z^2+4

I am looking for a function which does something like

sage: expr.constant_coefficient()
4

However, I did not find such a function. If I use coefficient I can get the desired result using

sage: expr.coefficient(x,0).coefficient(y,0).coefficient(z,0)
4

Of course if I have more variables that gets more tedious and I'd write a small helper function which goes through the variables contained in expr. I feel like this is much too complicated and I'm just overlooking some function. Is anyone aware of some cleaner way to do this if the expression contains a lot of variables (i.e. without having to write a helper-function)?

Thank you for your help!

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 4 years ago

rburing gravatar image

updated 4 years ago

You can set all variables to zero:

sage: var("x,y,z")
sage: expr = x*y+z^2+4
sage: expr.subs({v : 0 for v in expr.variables()})
4

If you are working with polynomials, consider using polynomial ring instead:

sage: R.<x,y,z> = PolynomialRing(QQ)
sage: expr = x*y+z^2+4
sage: expr.constant_coefficient()
4

Also you can convert back and forth between symbolic expressions and polynomials:

sage: var("x,y,z")
sage: expr = x*y+z^2+4
sage: R = PolynomialRing(QQ, names='x,y,z')
sage: SR(R(expr).constant_coefficient())
4
Preview: (hide)
link

Comments

Thanks! I thought about setting the variables to 0 as well but clearly that expression gets very ugly and hard to read. Converting to polynomials is a great way to do it, thanks!

philipp7 gravatar imagephilipp7 ( 4 years ago )
1

You're welcome! (I updated the answer to make the substitution method more readable.)

rburing gravatar imagerburing ( 4 years ago )
2

Possible shortcut:

sage: expr.polynomial(ZZ).constant_coefficient()

HTH,

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 4 years ago )

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

Asked: 4 years ago

Seen: 1,107 times

Last updated: Aug 11 '20