我想使用 sympy.lambdify 将符号表达式转换为数值,给定每个变量的值。这是我到目前为止所做的:
import sympy as sp
import numpy as np
x = sp.symbols('x')
y = sp.symbols('y')
variables = ['x','y']
fun = [x + sp.cos(y), y + sp.cos(x)]
conditions = [0,2]
以下功能正常工作:
sp.lambdify(variables, fun[0], 'numpy')(0,2)
这将返回 0 + cos(2),即
-0.4161468365471424
这就是我所追求的。
我想使用“条件”列表作为此函数的参数,而不是手动输入列表的每个元素,但我不知道该怎么做。
我已经尝试过
sp.lambdify(variables, fun[0], 'numpy')(conditions)
,但这本质上是([0,2])
,这只是一个论点,当然会导致TypeError: _lambdifygenerated() missing 1 required positional argument: 'y'
.
我也试过在“条件”之前添加 * 来解压它,但这给出了
TypeError: loop of ufunc does not support argument 0 of type Integer which has no callable cos method
.