使用Sympy在python中进行区分

时间:2014-12-03 13:35:01

标签: python sympy differentiation

我如何在python dC / dt = r + kI-dC中实现这种方程,其中左边是常数而右边是变量?

我对python相对较新,因此不能做太多。 from sympy.solvers import ode

r=float(input("enter r:"))

k=float(input("enter k:"))

I=float(input("enter I:"))

d=float(input("enter d:"))

C=float(input("enter C:"))

dC/dt=x

x=r + kI-dC

print(x)

它只是等同于x的值而不是任何差异,希望有助于使其发挥作用。

如果可能的话,我想得到指出使用sympy的回答, 但所有的答案都是真的很感激。

1 个答案:

答案 0 :(得分:1)

您为x的rhs上的所有变量赋值,因此当您显示x时,您会看到它对您定义的变量所采用的值。而不是输入值,为什么不尽可能象征性地解决ode?

>>> from sympy import *
>>> var('r k I d C t')
(r, k, I, d, C, t)
>>> eq = Eq(C(t).diff(t), r + k*I + d*C(t))  # note d*C(t) not d*C
>>> ans = dsolve(eq); ans
C(t) == (-I*k - r + exp(d*(C1 + t)))/d

现在,您可以在变量值中替换以查看结果:

>>> ans.subs({k: 0})
C(t) == (-r + exp(d*(C1 + t)))/d