python – 如何使用sympy定义条件函数?
发布时间:2020-12-20 12:33:27 所属栏目:Python 来源:网络整理
导读:我希望能够定义一个表达式,该表达式获取定义它的变量的所有值,并在未定义时将表达式计算为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)) re
我希望能够定义一个表达式,该表达式获取定义它的变量的所有值,并在未定义时将表达式计算为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)) 编辑: 以下是在评论中使用sp.lambdify的一种方法: 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})) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 是否可以在python中限制对一段代码的全局变量的访问?
- python – PyCharm:在内存中存储变量,以便能够从“检查点
- flask的url处理器(url_defaults和url_value_preprocessor)
- Python字符串逐字符或逐词反转方法
- 这个Python异常处理总结居然是一个刚入职半个月的实习生写的
- 快速解决安装python没有scripts文件夹的问题
- Python常用的爬虫技巧总结
- python:封装连接数据库方法
- python – 为什么我的当前目录不会出现在Windows上使用pyte
- ModuleNotFoundError: No module named 'scrapy'