# how to define a constant in sage?

Anonymous

Hello, I just started using sage. I am having some difficulties in declaring constants. I am trying to calculate derivatives of functions but I don't want to put values for the constant but rather define constants in the function. Somehow I am not able to find any literature on that.

I would be really grateful if someone can help me with this issue.

Cheers,

Sanyog

edit retag close merge delete

Sort by » oldest newest most voted

The code

sage: var('x y z')
(x, y, z)
sage: f = 3*x*y + 2*z + 12
sage: f.diff(x)
3*y
sage: g(x,y,z) = 3*x*y + 2*z + 12
sage: g.diff(x)
(x, y, z) |--> 3*y


provides two slightly different ways of defining a function involving x, y, and z, then differentiating with respect to x, thus treating y and z as constants. Is this what you want?

more

1

To follow up, I think that John means just doing var('a') will make a a "symbolic constant" in the sense you desire.

( 2012-03-19 23:27:41 +0200 )edit

This is a follow up. This is my code:

var("theta ee")
u=cos(theta)+ee
diff(u(theta),theta)


this is the output:

-sin(theta) + 1


I don't understand what is going on. Nowhere was ee equated to theta.

What is happening here?

more

You should really ask a separate question rather than posting a follow-up to a 9-year old question. If you evaluate u(theta), you will see that it is substituting theta in for ee: u is an expression involving two variables, and it substitutes the first one for ee, the second for theta. So u(1, 2) will give cos(2) + 1). Anyway, u(theta) evaluates to cos(theta) + theta, and then you're differentiating that.

( 2021-08-31 19:36:29 +0200 )edit

With my version of Sage, u(theta) also produces a warning about variable substitution. If you instead do u(theta=theta), you will get what you expect, and the derivative will be what you expect.

( 2021-08-31 19:37:28 +0200 )edit