我无法找到该微分方程的特定解决方案。
from sympy import *
m = float(raw_input('Mass:\n> '))
g = 9.8
k = float(raw_input('Drag Coefficient:\n> '))
v = Function('v')
f1 = g * m
t = Symbol('t')
v = Function('v')
equation = dsolve(f1 - k * v(t) - m * Derivative(v(t)), 0)
print equation
对于m = 1000和k = .2则返回
Eq(f(t), C1*exp(-0.0002*t) + 49000.0)
这是正确的,但我希望v(0)= 0时应返回的方程式求解
Eq(f(t), 49000*(1-exp(-0.0002*t))
我相信Sympy尚无法考虑初始条件。尽管dsolve
可以选择ics
输入初始条件(请参阅文档),但似乎用途有限。
因此,您需要手动应用初始条件。例如:
C1 = Symbol('C1')
C1_ic = solve(equation.rhs.subs({t:0}),C1)[0]
print equation.subs({C1:C1_ic})
Eq(v(t), 49000.0 - 49000.0*exp(-0.0002*t))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句