繁体   English   中英

使用 Python 求解非线性微分三阶方程

[英]Solving nonlinear differential third order equation using Python

我想使用 Python 求解非线性三阶微分方程。

就我而言,它是:

d^3f/dx^3 = (1-f)/(f^3)

我写了以下程序,但是我的求解器有问题,所以我不知道我与scipy使用的方法是否正确。

from sympy.interactive import printing
printing.init_printing(use_latex=True)

from sympy import *
import sympy as sp

x = sp.symbols('x')
f = sp.Function('f')(x)

diffeq = Eq(f.diff(x,x,x),(1-f)/(f**3))
display(diffeq)

dsolve(diffeq,f)

我收到了这个错误:

NotImplementedError: solve: Cannot solve -(1 - f(x))/f(x)**3 + Derivative(f(x), (x, 3))

您能帮我使用不同的解决策略吗?

谢谢

就是这样,没有实施方法来处理这种情况。 只有非常狭窄的 ODE 集具有符号解,即使方程中的微小变化也会破坏该字符。 sympy.dsolve只是零星的开发,因此将识别更少的案例,例如 Wolfram 的 Mathematica。

很大程度上,sympy 的方法可以处理一阶标量线性 DE、具有恒定系数的标量线性 DE、Bernoulli 和 Riccati、一些一阶线性系统(尤其是具有恒定系数),甚至更少的二阶线性系统(再次使用常数系数),选择具有范式的二阶线性 DE,并给出特殊函数作为解。 可能还有一些异国情调。 您可以在文档中找到这些。 然后在此之上添加一些启发式方法,以将给定方程简化为其中一种情况,这是一个更具实验性的过程。

您不太可能将方程式转换为这些 forms 之一,即使是手动转换,因此会出现错误NotImplementedError:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM