我在SymPy验证码:评估的许多参数尽可能(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
。
我会说你的链接中描述的情况与此处的不同。在链接中,问题就像'1/0'的数值评估那样,而这里没有出现这样的数字问题。我认为问题在于OP希望'evalf'返回一些与数字'2'和符号'f'混合的东西。 – Hannebambel
在页面上引用I网站是相关问题的列表,例如, https://github.com/sympy/sympy/issues/6974与此处给出的情况类似。 – smichr