如何使用多个输入评估Sympy符号函数

时间:2019-02-15 19:18:24

标签: python-3.x sympy

我正在尝试使用sympy象征性地求解函数,然后输入值并以数字方式求解。我只能使用一个变量来完成此操作,但无法弄清楚如何使用多个变量。这是我到目前为止所拥有的。

v,v0,a,t = sp.var('v v0 a t')
args = [v0,a,t]
arg_vals = [1,-9.81,2]

def get_function():
    v = v0 + a*t
    return v

def get_derivative(fun,var):
    derivative = sp.diff(fun,var)
    return derivative

def get_integral(fun,var):
    integral = sp.integrate(fun,var)
    return integral

def eval_function(fun, args, arg_vals):
    i=0
    for i in range(len(arg_vals)):
        args[i] = arg_vals[i]
    return fun.evalf(subs={args})

v = get_function()
a = get_derivative(v,t)
x = get_integral(v,t)

x_eval = eval_function(v,args,arg_vals)

代码运行良好,直到命中eval_function返回fun.evalf(subs = {args})。然后我得到

>>>TypeError: unhashable type: 'list'

一段时间以来,我一直在试图弄清楚这一点,并且猜测有人可以花几秒钟的时间告诉我我很傻。谢谢您的帮助!

(使用anaconda,spyder,python 3)

0 个答案:

没有答案