Sympy subs不输出替换表达式?

2024-05-17 01:06:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Symphy来区分python中的函数。在对函数进行微分之后,我想加入我用以微分的变量的数值。但是,使用.subs()不会返回不同的答案。有人知道我的问题是什么吗

代码:

CA1 = CA0 * sympy.exp(-(A1*sympy.exp(-E1/(R*T)))*t)
dCa_dA12 = diff(CA1, A1)
print("No substitution:", dCa_dA12)
dCa_1 = dCa_dA12.subs(A1, theta[0])
print("Substitution:", dCa_1)

输出: Output


Tags: 函数答案代码a1区分数值subsprint
1条回答
网友
1楼 · 发布于 2024-05-17 01:06:26

我也遇到了同样的问题,并且正在做一些修补:

这项工作:

>>> sympify("k").evalf(subs={"k":1})
1.00000000000000

这不起作用:

>>> sympify("k+x").evalf(subs={"k":1})
k + x

这同样有效:

>>> sympify("k+x").evalf(subs={"k":1, "x":2})
3.00000000000000

因此,如果结果不是一个数字,那么替换似乎不起作用。奇怪的是,这只适用于subs部分:

>>> sympify("2/3*x")
2*x/3
>>> sympify("2/3*x").evalf()
0.666666666666667*x

对我来说这看起来像个虫子。至少,它应该被适当地记录下来

相关问题 更多 >