python - placeholder functions in sympy -


# python 2.7.10 # sympy 0.7.6 import sympy sym a, b, c, x = sym.symbols('a b c x') f = sym.symbols('f', cls=sym.function) 

suppose have expression:

expr = f(a - b) - f(b**2 - c) 

is there way replace unknown function f known function f(x) = x**0.5 + 1? example:

result = expr.subs(f(_), _**0.5 + 1) 

which result in:

(a - b)**0.5 - (b**2 - c)**0.5 

in [1]: import sympy sm in [2]: a, b, c, x = sm.symbols('a b c x') in [3]: f = sm.symbols('f', cls=sm.function) in [4]: expr = f(a - b) - f(b**2 - c) 

you can use sympy's lambda function define custom function.

in [5]: g = sm.lambda(x, sqrt(x) + 1) in [6]: expr.subs(f, g) out[6]: sqrt(a - b) - sqrt(b**2 - c) 

Comments