我需要数值求解一个方程(解必须依赖于k∈⟨0,1)。每次我使用返回表达式的函数或使用lambda定义函数时,它都会返回类似的错误。现在,我尝试使用lambdify将SymPy表达式转换为等效的数字函数,但返回了相同的错误。
from scipy import *
import sympy as sym
init_printing()
x,k=symbols("x,k")
f=(sym.log(x)/sym.log(k))**k-x**(1/sym.atanh(k))
a=lambdify([x,k], f, "scipy")
(a([0,1]))
TypeError Traceback (most recent call last)
<ipython-input-29-04519472dd5e> in <module>
7
8 a=lambdify([x,k], f, "scipy")
----> 9 print(a([0,1]))
TypeError: _lambdifygenerated() missing 1 required positional argument: 'k'
发布于 2020-01-08 02:09:22
使用a(0,1)
而不是a([0,1])
进行调用。如果你想使用一个列表作为参数,你可以像这样使用一个嵌套的变量列表:a=lambdify([(x,k)], f, "scipy")
。
https://stackoverflow.com/questions/59632912
复制相似问题