我正在使用 sympy 来区分 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)
输出:
最佳答案
我遇到了同样的问题,并且正在修补一下:
这有效:
>>> 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
对我来说这看起来像是一个错误。至少,应该正确记录它。
关于python - Sympy subs 不输出替换表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61465322/