解微分方程

k

我无法找到该微分方程的特定解决方案。

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))
Stelios

我相信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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章