# Is there any way to define an as-yet-unknown function?

I'd like to know if there's a way of declaring functions in sage that are as-yet unknown. For example, let's say I have a function

p = R*T/v - a(T)/v/(v+b)


And I would like to be able to take a derivative like this

deriv(p,T)


and be given something back a partial derivative something like

R/v - diff(a(T),T)/v/(v+b)


However at present I can't seem to put an abstract function a(T) into my expression or find anything in the documentation that says how this is done.

As I recall there was a way to do this with wxMaxima, so maybe I just haven't found the trick in Sage yet.

edit retag close merge delete

Sort by » oldest newest most voted

You can define a function using the keyword function. The script below gives the answer you expect.

T=var('T')
a=function('a',T)
R=var('R')
v=var('v')
b=var('b')
p = R*T/v - a(T)/v/(v+b)
diff(p,T)

more

Great. seems to work fine. The output is a bit weird though, in typeset sage, the diff(a(T),T) is written as D [ 0 ] ( a ) ( T ), not particular intuitive. But it works! Thank you.

( 2012-03-23 12:53:03 -0500 )edit