解微分方程

2024-06-09 12:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到一种优雅的方法来解下面的微分方程:

from sympy import *
init_printing()

M, phi, t, r = symbols('M phi t r')

eq = Eq(-M * phi(t).diff(t), Rational(3, 2) * m * r**2 * phi(t).diff(t) * phi(t).diff(t,t))

enter image description here

我假设phi(t)。diff(t)不是零。因此左右两边都缩短了。在

这就是我解决问题的方法:

^{pr2}$

enter image description here

dsolve(eq, phi(t))

enter image description here

我怎样才能更优雅地解决这个问题?在


Tags: 方法fromimportinitdiffeqrational解决问题
1条回答
网友
1楼 · 发布于 2024-06-09 12:36:35

理想情况下,dsolve()能够直接求解方程,但它不知道如何求解(它需要了解它可以对一个方程进行因子分解并独立求解这些因子)。我为它打开了一个issue。在

我唯一的另一个建议是直接划分phi'

eq = Eq(eq.lhs/phi(t).diff(t), eq.rhs/phi(t).diff(t))

你也可以使用

^{pr2}$

在不修改二阶导数的情况下用1替换一阶导数(与subs不同,xreplace没有数学知识,它只是精确地替换表达式)。在

别忘了phi(t) = C1也是一个解(当phi'等于0时)。在

相关问题 更多 >