1

我如何在 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 的答案,但所有答案都非常感谢。

4

1 回答 1

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
于 2014-12-03T19:55:44.123 回答