Ask Your Question
0

Calculus with formal functions: substitution?

asked 11 years ago

Alasdair gravatar image

If I enter

var('f,x,y')
y = function('y',x)
f = function('f',x,y)

then

f.diff(x)

returns

D[1](f)(x, y(x))*D[0](y)(x) + D[0](f)(x, y(x))

In order to perform more computations later on, I want to rewrite this, using substitutions, so it looks something like

Fy*yx + Fx

But I've got no idea how to do this. In Maxima I'd just use 'diff(f,x) as the expression to substitute for, but even trying to use dummy_diff doesn't seem to work:

from sage.calculus.calculus import dummy_diff
dummy_diff(f,x)

produces the same result as f.diff(x) above.

Does anybody know how I can use substitutions to express the results of a formal differentiation with other symbols?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 11 years ago

ndomes gravatar image

A suggestion: convert to a string, use string method replace and reconvert to a sage expression.

F = function('F',x)
print diff(F(2*x))
f = function('f',x)
f(x) = sage_eval(str(diff(F(2*x))).replace('D[0](F)','f'),locals={'x':x,'f':f})
f(x)
Preview: (hide)
link

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 11 years ago

Seen: 450 times

Last updated: Jan 16 '14