如何使用列表的元素作为 lambdify 函数的多个参数?

问题描述 投票:0回答:0

我想使用 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
.

python sympy unpack lambdify
© www.soinside.com 2019 - 2024. All rights reserved.