Ask Your Question

Assign value to symbolic function?

asked 2021-10-29 10:56:21 +0200

keko gravatar image

I have a symbolic function $g(x,y)$, which depends on the variables $x$ and $y$. Using this, I define the function $f(x,y)$ as: \begin{equation} f(x,y) = g(x,y) + 2x. \end{equation}

If I calculate the derivative of $f(x,y)$ with respect to $x$: \begin{equation} \frac{df(x,y)}{dx}=\frac{dg(x,y)}{dx}+2. \end{equation}

Now, I need to evaluate this at $x=0$, knowing that $\frac{dg(x,y)}{dx}\bigg\rvert_{x=0}=10$. This should give me: \begin{equation} \frac{df(x,y)}{dx}\bigg\rvert_{x = 0} = \frac{dg(x,y)}{dx}\bigg\rvert_{x = 0} +2=12 \end{equation}

The code I have written to achieve this is the following:

x = var('x')
y = var('y')
g = function('g')(x,y) #symbolic function
f = g + 2*x
der_f = diff(f,x); der_f

and this is what I get:

diff(g(x, y), x) + 2

as I expected. However, I don't know how to follow. In particular, I need to know how to:

1) assign $\frac{dg(x,y)}{dx}\bigg\rvert_{x=0}=10$,

2) evaluate $\frac{df(x,y)}{dx}$ at $x=0$, so that I obtain $\frac{df(x,y)}{dx}\bigg\rvert_{x = 0} = 12$.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2021-10-29 11:39:49 +0200

rburing gravatar image

updated 2021-10-29 11:46:02 +0200

Instead of "assigning" a value to $\partial g/\partial x \vert_{x=0}$ beforehand, it's easier to make the substitution afterward:

sage: der_f.subs(x==0).subs(diff(g,x).subs(x==0) == 10)

Or in steps, mimicking the order you proposed:

sage: what_i_know = diff(g,x).subs(x==0) == 10
sage: der_f.subs(x==0).subs(what_i_know)
edit flag offensive delete link more


That definitely did the work! Nevertheless, is there a way I can set the value of ∂g/∂x|x=0 beforehand, so that it automatically does the substitution ∂g/∂x|x=0 = 10 every time it finds that expression?

keko gravatar imagekeko ( 2021-10-29 12:00:22 +0200 )edit

Maybe it's possible by specifying a derivative_func in the definition of g, returning another symbolic function with a custom eval_func, but even if it worked (I didn't manage) it would be very awkward and convoluted to define. I think it's better to be explicit about such substitutions anyway.

rburing gravatar imagerburing ( 2021-10-29 12:45:30 +0200 )edit

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


Asked: 2021-10-29 10:56:21 +0200

Seen: 249 times

Last updated: Oct 29 '21