如何用 Python 解决僵硬的颂歌?

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

我是 Python 初学者。我正在尝试切换我在 matlab 中的一些程序。 我需要求解一个刚性 ode 方程,其输入都是矩阵。在 matlab 中我使用

[ttT,uT] = ode23s('SST',t,fT);
python matlab numpy scipy ode
2个回答
4
投票

对于您在 Matlab 中所做的大多数事情,您可以使用 Python 中的 NumPy 模块来完成。可以在这里找到它。

您可能还会发现相关模块 SciPy 也很有用。

PyDSTool 也可能与您相关。它是 Radau 求解器的包装器。

那么您可能想尝试使用 matplotlib 进行绘图。它的工作原理很像 Matlab 的绘图工具。

以下链接也可能有帮助:


1
投票

如果你告诉我微分方程,我可以帮你多一点,但一般来说,解决刚性 ODE 系统的好方法是通过下一句话:

solution = scipy.integrate.solve_ivp(function, [t_0, t_f], y0, method='BDF', first_step =0.0001, dense_output=True)

您的函数之前必须以这种方式定义:function(t,variable,parameters)

t_0 = initial value for time
t_f = final value for time
y0  = value of your variables at t_0

对于刚性 ODE 系统,我建议使用方法“BDF”(通常用于求解反应器中的微动力学系统,其中时间的重要性可能会发生很大变化)

有关代码选项的更多信息:https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html

© www.soinside.com 2019 - 2024. All rights reserved.