我在 SymPy 中有这段代码:
from sympy import *
par_amplitude, par_const_force = symbols('Delta_U f')
equation = par_amplitude * par_const_force
print(equation.evalf(subs={'f':3, 'Delta_U':2}))
输出很明显6
。
当我只能访问一个参数时,就会出现问题,如下所示:
print(equation.evalf(subs={'Delta_U':2}))
而不是预期的2 * f
我得到Delta_U * f
.
我究竟做错了什么?有没有办法评估一个表达式,而不是所有参数都可用?
编辑:
是的,我追求的是混合数字/符号输出。想象一下有很多参数(自动生成,所以你甚至不确定有多少)的情况,并且有一个函数提供所有subs
值。如果您只错过一个替换值,您基本上不会从evalf
.