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)
解决方案
推荐阅读
- mysql - 如何从 php 选择查询创建 sql 插入查询
- bixby - 如何在调用远程端点时提供默认值
- debugging - 非终结符发生 JISON 错误
- protractor - 打开多个浏览器,但只有一个浏览器运行规范。其他浏览器空闲
- c# - 如何在网格中的多个记录中选择第一条记录复选框?
- bootstrap-4 - 显示一个 div 并隐藏另一个 div。如何在 Bootstrap 中实现
- javascript - 如何正确使用 setTimeOut?
- matlab - 安装 Arduino 时出错
- node.js - 如何在 Angular 6 中将联系表详细信息发送到电子邮件?
- node.js - JSON 解析错误:意外的标识符“未找到”