假设我有一个符号变量(来自sympy
),定义为
z = r/p * (p-c)/(r-c)
更正式地将其表示为z=z(p; c, r)
:c
和r
是我要保持常数的参数,而z
实际上是{{1}中的函数}。
现在,我想为p
,z=z(p)
的选定值评估c
,但是我不想在我的r
环境中定义它们,因为我想要其他表达式仍将其视为常规参数和未知参数。
本质上,我在寻找类似的东西
sympy
我该如何进行数字评估?
答案 0 :(得分:1)
def my_lambdify(x, y, parameters=None):
if parameters is not None:
try:
ys = y.subs(parameters)
except ValueError:
ys = y
else:
ys = y
return lambdify(x, ys)
my_func = my_lambdify(p , z, parameters={'r': 2, 'c': 3})
my_func(2)
1.0
z
r *(-c + p)/(p *(-c + r))
my_func = my_lambdify(p , z, parameters={'r': 'r0', 'c': 'c0'})
my_func(2)
r0 *(-c0 + 2)/(-2 * c0 + 2 * r0)