我希望能够定义一个表达式,该表达式获取定义它的变量的所有值,并在未定义时将表达式计算为0.
与此类似: –
与此类似: –
import numpy as np import sympy as sp def expr(k1,k2): x,y =sp.symbols('x y') if x == k1 : fn = 0 else: fn = np.divide(1,(x-k1)*(y-k2)) return fn,x,y f,y = expr(1,2) print(f) fx = f.subs({x:1,y:4}) print(fx)
那么,一旦定义了函数,如何检查相等或条件?
fn = 1 /(x-1)(y-2);如何将x = 1或y = 2设置为0?
解决方法
您应该在函数内定义一个函数,然后返回它.像这样:
import numpy as np import sympy as sp def expr(k1,k2): x,y =sp.symbols('x y') def fn(x,y): if x==k1: return 0 else: return np.divide(1,(x-k1)*(y-k2)) return fn,y f,2) print(f(x,y)) print(f(1,4))
编辑:
x_dot = 1 / ((x - 1) * (y - 2)) f = lambda a,b : 0 if a==1 or b==2 else sp.lambdify((x,y),xdot,"numpy")(a,b)
另一种选择是使用sp.subs
f = lambda a,b: 0 if a==1 or b==2 else float(x_dot.subs({x:a,y:b}))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。