Sympy 中使用动态符号的微分方程

问题描述 投票:0回答:1

在 Sympy 中,我尝试求解这样的微分方程:

from sympy import *
from sympy.physics.vector import dynamicsymbols
x = dynamicsymbols('x')
diffeq = Eq(x(t).diff(t), x(t))
dsolve(diffeq, x(t))

但这又回来了

TypeError                           Traceback (most recent call last)
<ipython-input-10-8a45d7148b24> in <module>()
      1 x = dynamicsymbols('x')
----> 2 diffeq = Eq(x(t).diff(t), x(t))
      3 dsolve(diffeq, x(t))

TypeError: 'x' object is not callable

据我了解,

dynamicsymbols
创建了一个t的函数,那么如何在微分方程中使用它?

python sympy symbolic-math differential-equations
1个回答
3
投票

Sympy 文档有点混乱...当你打印变量时

x

print(x)

你得到了字符串

x(t)

但是,这并不意味着应该在方程中调用

x(t)
,而只是使用变量
x
:

from sympy import *
from sympy.physics.vector import dynamicsymbols
x = dynamicsymbols('x')
diffeq = Eq(diff(x, Symbol('t')), x)
dsolve(diffeq, x)   # Eq(x(t), C1*exp(t))
© www.soinside.com 2019 - 2024. All rights reserved.