簡體   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