python - 如何解决 Python 中多变量的限制?
问题描述
我正在尝试使用 Python 解决多变量函数(三个变量)sympy
的限制,但 limit() 方法仅适用于一个变量;而且,如果我尝试使用 subs,它可以使用 2 个参数 f(x, y),但我需要三个参数 f(x, y, z)。
尝试使用 limit() 方法:
from sympy import *
import math
x, y, z = symbols('x y z')
exp = limit((x**3 + y*x**2)/sqrt(x**4 + y**2 + z**4), x, 0, y, 0, z, 0)
print(exp)
TypeError:limit() 接受 3 到 4 个位置参数,但给出了 7 个
尝试使用潜艇:
from sympy import *
import math
x, y, z = symbols('x y z')
exp = (x**3 + y*x**2)/sqrt(x**4 + y**2 + z**4)
res_exp = exp.subs([x,0], [y,0], [z,0])
print(res_exp)
ValueError: subs 接受 1 或 2 个参数
解决方案
感谢回答,对我有用的方法是创建一个类似于 limit() 的方法,它接受 7 个参数,然后在每个轴变为 0 时评估方程。函数接收方程,以及要评估的点。
from sympy import *
x, y, z = symbols('x y z')
exp1 = (3*x*z**2*y + y**2) / (x**2 + 2*y**2 + z**4)
exp2 = (x*y + y*z +x*z) / (x**2 + y**2 + z**2)
exp3 = (x*z**2 + 2*y**2) / (x**2 + 2*y**2 + z**4)
def limit3var(eq, var1, val1,var2, val2, var3, val3):
res_eqx = eq.subs([(var2, val2), (var3, val3)]) #x goes to 0.
res_eqy = eq.subs([(var1, val1), (var3, val3)]) #y goes to 0.
res_eqz = eq.subs([(var1, val1), (var2, val2)]) #z goes to 0.
print("Evaluate x-axis : {}".format(res_exp))
print("Evaluate y-axis : {}".format(res_exp2))
print("Evaluate z-axis : {}".format(res_exp3))
if res_exp != res_exp2 or res_exp != res_exp3 or res_exp2 != res_exp3:
print("The limit does not exist in that point: ")
else:
print("The function is continuous in that point")
在控制台中运行:
In[45]: limit3var(exp1, x, 0, y, 0, z, 0)
Evaluate x-axis : 0
Evaluate y-axis : 1/2
Evaluate z-axis : 0
The limit does not exist in that point
In[46]: limit3var(exp2, x, 0, y, 0, z, 0)
Evaluate x-axis : 0
Evaluate y-axis : 0
Evaluate z-axis : 0
The function is continuous
In[47]: limit3var(exp3, x, 0, y, 0, z, 0)
Evaluate x-axis : 0
Evaluate y-axis : 1
Evaluate z-axis : 0
The limit does not exist in that point
推荐阅读
- python - 如何创建一条知道起点、终点和距离的路线
- python - 获取数字列表并检查其中是否存在中间峰-Python
- c# - 在没有 ConfigurationManager 的情况下从 App.config 读取 ConnectionString
- c++ - 是否可以从 Visual Studio 2019 的终端运行构建任务?
- python - 如果您使用 repl.it,如何调用本地文件/在线文件?
- reactjs - React-scripts@4 编译失败,因为更漂亮
- python - 不接受任何论据
- docker - 启动时自动创建 Rundeck 作业(Docker 容器中的 Rundeck)
- pyspark - 如何使用 pyspark 数据框编写 tab.gz 文件
- forms - 我无法在我的 Vue 项目中向控制台提交任何数据