Ask Your Question
0

Calculus with formal functions: substitution?

asked 2014-01-16 08:18:05 +0100

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2014-01-16 14:36:00 +0100

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)
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

Stats

Asked: 2014-01-16 08:18:05 +0100

Seen: 420 times

Last updated: Jan 16 '14