9得票2回答
ODE45和Runge-Kutta方法相对于解析解的绝对误差比较

我希望有人能帮助解决以下问题。 我有以下常微分方程: dr/dt = 4*exp(0.8*t) - 0.5*r ,r(0)=2, t[0,1] (1) 我已经用两种不同的方法解决了(1)。 一种是通过龙格-库塔法(4阶),另一种是通过Matlab中的ode45函数。我已将...

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

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

8得票1回答
朱莉娅 DifferentialEquations.jl 速度

我正在尝试测试Julia ODE求解器的速度。我在教程中使用了Lorenz方程: using DifferentialEquations using Plots function lorenz(t,u,du) du[1] = 10.0*(u[2]-u[1]) du[2] = u[1]*(28...

8得票2回答
非线性回归与随机效应以及lsoda

我遇到了一个无法解决的问题。我想使用nlme或nlmODE来执行具有随机效应的非线性回归,以固定系数的二阶微分方程的解作为模型(阻尼振荡器)。 我成功地使用nlme进行简单模型的建立,但似乎使用deSolve生成微分方程的解会导致问题。以下是一个示例和我面临的问题。 数据和函数 这是使用...

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

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

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...

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

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

7得票2回答
Matlab:如何在混合初始和终端条件的情况下数值求解ode系统?

我正在尝试使用ode45来解决一组常微分方程组: [X,Y]= ode45(@sys,[0, T],y0); 其中, function dy = sys(t,y) dy(1) = f_1(y) dy(2) = f_2(y) dy(3)...

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

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

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

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