首页 > 解决方案 > 如何评估具有多个输入的 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)

标签: python-3.xsympy

解决方案


推荐阅读