10得票2回答
奇怪的SciPy ODE集成错误

我正在实现一个非常简单的易感-感染-恢复模型,该模型针对一个稳定人口进行建模,这是一个相当琐碎的任务。但是,我在使用PysCeS或SciPy时遇到了求解器错误,它们都使用lsoda作为其基础求解器。这仅发生在特定参数值下,我对此感到困惑。我使用的代码如下: import numpy as n...

7得票2回答
解决一个隐式常微分方程组 (代数微分方程 DAE)

我正在尝试使用scipy中的odeint求解一个二阶ODE。我遇到的问题是函数隐式地与二阶项相耦合,如简化的代码片段所示(请忽略示例中的假物理内容): import numpy as np from scipy.integrate import odeint def integral(y,...

7得票4回答
Haskell - 优化微分方程求解器

我正在学习Haskell,并尝试以与C相同的速度编写代码。对于这个练习,我正在为一个简单的一维物理系统编写欧拉积分器。 C代码使用GCC 4.5.4和-O3编译。它运行需要1.166秒。 Haskell代码使用GHC 7.4.1和-O3编译。它运行需要21.3秒。 如果我使用-O3 -fl...

7得票1回答
在Matlab中使用FFT、IFFT和FFTShift

我正在尝试实现分裂-傅里叶方法,以解决光学中的非线性薛定谔方程。基本上它将线性部分和非线性部分分开处理。它通过使用傅里叶变换解决线性部分,并在时间域中解决非线性部分。 以下代码来自一本书: alpha = 0 beta_2 = 1 gamma = 1 T = linspace(-5,5,...

8得票2回答
MATLAB中的ODE求解器中的质量矩阵是什么?

在不使用质量矩阵的情况下,ODE求解器(如ode45)可以解决y'=f(t,y)。 但是,在涉及“质量”矩阵M(t,y)y'=f(t,y)的问题中,ODE求解器中有一个质量矩阵选项。 那么,“质量”矩阵到底是什么?这个术语来自于质量-弹簧系统振荡的质量吗?我在文档中找不到关于此的示例代码。...

8得票1回答
scipy.integrate.ode.set_solout工作吗?

scipy.integrate.ode 接口提供了一种方法,用于在任何步骤上违反约束条件时停止积分,称之为 set_solout。然而,即使在最简单的示例中,我也无法让此方法正常工作。以下是一个尝试: import numpy as np from scipy.integrate impo...

7得票1回答
使用Python解决带有时间延迟的ODE问题

有人能给我一些建议吗,如何在Python中解决一个带有时间延迟的常微分方程(ODE)?使用scipy.integrate.odeint似乎无法实现。我正在寻找的应该类似于: # the constants in the equation b = 1/50 d = 1/75 a = 0.8 G...

7得票1回答
将numpy数组转换为迭代器

我想将一个数组作为函数的参数,用于解决ODE函数。 def ode(x, t, read_tau, tau_arr): q_ib = x[0:4] omega = x[4:7] dq_ib = 0.5 * np.dot(gen_omega(omega), q_ib) + rea...

41得票1回答
收到"Signal 15"是什么意思?

可能是什么原因导致使用一个名为SUNDIALS/CVODE的库(一种数值ODE求解器)在Gentoo Linux集群上运行的C、MPI程序给我反复发出Signal 15 received.? 这个代码是由MPI、Sundials、Linux、C或其他谁发出的? 请注意,我对以下技术基本上是...

8得票1回答
scipy.integrate.solve_ivp向量化

尝试使用solve_ivp的向量化选项,但出现了一个奇怪的错误,提示y0必须是一维的。 MWE: from scipy.integrate import solve_ivp import numpy as np import math def f(t, y): theta = m...