# Substituting function value in an expression

 1 I have an expression like uR(t) == 3*iL(0) + uC(0)/2 - 4 how can I substitute for iL(0) and uC(0), if I'm given, that iL(0) = 0 and uC(0) = 0. uR, iL, uC are a functions of var t: t = var('t') uR = function('uR', t) iL = function('iL', t) uC = function('uC', t)  thank you :) asked Jun 29 '11 Ondra 47 ● 3 ● 8

 1 The simplest way is just to use the subs (or substitute) method of your symbolic expression like so: sage: t = var('t') sage: uR = function('uR', t) sage: iL = function('iL', t) sage: uC = function('uC', t) sage: sage: SE = uR(t) == 3*iL(0) + uC(0)/2 - 4 sage: SE.subs(iL(0)==0) uR(t) == 1/2*uC(0) - 4 sage: SE.subs(uC(0)==0) uR(t) == 3*iL(0) - 4 sage: SE uR(t) == 3*iL(0) + 1/2*uC(0) - 4  You see from the last line that the object SE is not changed during the substitution, so you should assign the result of the substitution. Also, you can do both (or arbitrarily many) substitutions using a dictionary: sage: R = SE.subs({iL(0):0, uC(0):0}) sage: R uR(t) == -4  posted Jun 30 '11 benjaminfjones 2545 ● 4 ● 36 ● 67 http://bfj7.com/ works, thanks! :), *but* sage gives: __main__:4: DeprecationWarning: Substitution using function-call syntax and unnamed arguments is deprecated and will be removed from a future release of Sage; you can use named arguments instead, like EXPR(x=..., y=...) Is there an unobsolete way? Ondra (Jul 01 '11)@Ondra: Your original syntax had that problem too. It's hard to see without formatting, so I will put this in an answer, but @benjaminfjones has answered your question :) kcrisman (Jul 01 '11)
 2 Expanding on my remark: Functions defined in the way above don't say they have just one variable for input (their expression could, in theory, have some constants like c or a that shouldn't be substituted, only t), so we have to do this: sage: t = var('t') sage: uR = function('uR', t).function(t) sage: iL = function('iL', t).function(t) sage: uC = function('uC', t).function(t) sage: SE = uR(t) == 3*iL(0) + uC(0)/2 -4  posted Jul 01 '11 kcrisman 7427 ● 17 ● 76 ● 166 thanks a lot! :) Ondra (Jul 01 '11)

[hide preview]