[英]Unknown type of equation in dsolve
我需要解決這個與化學反應器相關的系統。 我使用了 sympy 並且無法以任何方式解決錯誤
我的代碼在這里:
from sympy import symbols, Function, dsolve, Eq, Derivative, sin, cos
Pf, Po, Pm, Pc, Ph, Pn = symbols('Pf Po Pm Pc Ph Pn', cls=Function)
#Pf-furfural pressure; Po-oxygen pressure; Pm-maleic anhydride pressure; Pco-carbon dioxide pressure; Ph-steam pressure; Pn-nitrogen pressure*
W, k1, k2, k3, n, m, l, R, T, vt, Pt = symbols('W k1 k2 k3 n m l R T vt Pt')
#W-catalyst mass; k1-kinetic constant first reaction; k2-kinetic constant second reaction; k3-kinetic constant third reaction; n, m y l, reaction orders for oxygen in the first, second and third reaction, respectively; R- universal gas constant, T-temperature, vt-catalyst volume*
A = R*T/vt
Pt = Pf(W)+Pf(W)+Pm(W)+Pc(W)+Ph(W)+Pn(W)
eq=((Eq(Derivative(Pf(W), W), (-A*k1*Pf(W)*(Po(W)**n)-A*k2*Pf(W)*(Po(W)**m)))),
(Eq(Derivative(Po(W), W), (-A*k1*Pf(W)*(Po(W)**n)-A*k2*Pf(W)*(Po(W)**m)-A*k3*Pm(W)*(Po(W)**l)))),
(Eq(Derivative(Pm(W), W), (A*k1*Pf(W)*(Po(W)**n)-A*k3*Pm(W)*(Po(W)**l)))),
(Eq(Derivative(Pc(W), W), (A*k1*Pf(W)*(Po(W)**n)+5*A*k2*Pf(W)*(Po(W)**m)+4*A*k3*Pm(W)*(Po(W)**l)))),
(Eq(Derivative(Ph(W), W), (A*k1*Pf(W)*(Po(W)**n)+2*A*k2*Pf(W)*(Po(W)**m)+A*k3*Pm(W)*(Po(W)**l)))),
(Eq(Derivative(Pn(W), W), (0))))
dsolve(eq, [Pf(W), Po(W), Pm(W), Pc(W), Ph(W), Pn(W)], hint="all")
我運行代碼后,出現以下錯誤
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-56-42dc4d2e7b25> in <module>
----> 1 dsolve(eq)
~\Anaconda3\lib\site-packages\sympy\solvers\ode.py in dsolve(eq, func, hint, simplify, ics, xi, eta, x0, n, **kwargs)
607 "number of functions being equal to number of equations")
608 if match['type_of_equation'] is None:
--> 609 raise NotImplementedError
610 else:
611 if match['is_linear'] == True:
NotImplementedError:
符號微分方程求解的sympy
函數是實驗性的,不是很完整,因此您應該從表面上獲取錯誤消息,您的系統不屬於任何具有求解器方法的類別。
此外,一般微分方程和 DE 的更多系統不具有符號解,具有符號解的集合非常“薄”,對符號可解方程的輕微更改將使其無法解。 這意味着即使是更完整的符號求解器方法庫,例如 Mathematica 中的一個,也無法找到符號解法。
所以你需要弄清楚你真正想要的是什么(解圖、參數擬合等),然后找到合適的數值方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.