我如何在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的回答, 但所有的答案都是真的很感激。
答案 0 :(得分:1)
您为x的rhs上的所有变量赋值,因此当您显示x时,您会看到它对您定义的变量所采用的值。而不是输入值,为什么不尽可能象征性地解决ode? p>
>>> 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