问题标签 [ode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在具有相移变量的方程上使用 scipy odeint
基本上......我需要一种在我的微分方程中包含相移的方法。也就是说,我的系统函数定义中有返回 dY/dt 之类的 Y(t-3)。就像这个微分方程:
现在,如果我尝试将其编写为传递给 scipy.odeint 的系统定义函数,我会迷失方向:
基本上就是这样。我真的希望有一个简单的答案,但我似乎无法找到一个。
具体来说......我正在尝试以数值方式计算由以下函数定义的系统的解决方案:
然后这个函数随后被赋予 odeint,如下所示:
然后我可以像这样取出 ETA 的每个单独组件(如 eta_0)ETA[:,0]
:
我在这里遇到的问题是pastEta(t-theta[?])
. 目前,这是一个试图找到已经计算的 eta 值的函数(对于 whenstart_time < t-theta[?] < t
和theta[?] > 0
。这不是很好。
我看到在这种情况下,我可以单独找到 eta 的每个组件,然后获取先前计算的 eta 组件(eta_0、eta_1、eta_2)的计算值来计算 eta_3,并且类似地计算 eta_4,但这并不理想,因为它剥夺了我可以“即插即用”任何通用公式。
c - Matlab 脚本移至 C,但 ode45 的输出不同
我在 C 中实现了一个 Matlab 脚本的等效版本。为了运行 ode45,我选择了 GNU 科学库。但是 ode45 为每个版本生成不同的输出。我已经工作了一段时间,但我无法找到问题所在。我使用 gsl_odeiv2_driver_apply_fixed_step 进行与 Matlab 中相同的步骤。
Matlab 脚本
C代码
Matlab 输出
C 输出
在第二列的末尾,数据有很大不同。在 Matlab 中几乎是 0 但不是 C 代码。
Matlab 时间戳
matlab - 在 ODE45 中求解 -Matlab
我有一个 ODE y'=y^2+y
,; 所以,我写了一个脚本:
但它返回以下错误:
我在定义函数时一定犯了一些错误。我感谢任何意见和建议。
matlab - MATLAB如何使用ODE求解器?
我有一个 ODE,我想消除x
. 有人可以在 MATLAB 中帮助我吗?
方程
常量值:
matlab - 如何在Matlab中表达和求解这个微分方程组?
方程如下所示:
dxi(t)/dt = -c * xi(t) * yi(t)
dyi(t)/dt = a * Σ{i=1 to n}(xi(t) * yi(t)) + xi(t) * yi(t - 1) + b
其中 a、b 和 c 是您想要的任何常数值,例如 a=1、b=2、c=3。
Σ{i=1 to n}(xi(t) * yi(t)) 表示从i=1到n求和,例如n=3:x1(t)*y1(t) + x2(t)*y2 (t) + x3(t)*y3(t)
那么,如何使用 matlab 表达和解决这个问题?
matlab - ODE 系统,具有差分初始条件的 IVP
我正在尝试对一个由三个微分方程组成的系统进行建模。这是一个液滴模型,参数化与弧长s 的关系。
方程为:
dx/ds=cos(theta)
dz/ds=sin(theta)
(theta)/ds=2*b+c*z-sin(theta)/x
初始条件是 x、z 和 theta 在 s=0 时都为 0。为了避免 d(theta)/ds 上的奇异性,我还有一个条件是,在s=0处,d(theta)/ds=b。我已经写了这段代码:
这产生了一个螺旋式的解决方案。它不是创建一个液滴配置文件,而是创建许多。当然,这里我没有正确初始化方程,因为我不确定如何在 s=0 处为 theta 使用不同的方程。
所以问题是:我如何包含 d(theta)/ds=b 而不是通常在 s=0 处的初始条件?这可以使用matlab上的内置求解器吗?
谢谢。
matlab - 使用 ODE 进行 MATLAB GUI 编程
我是编程新手,我必须使用常微分方程 (ODE) 创建一个 matlab gui 代码,然后绘制所述方程。我遇到的问题是 ode 的函数在一个 .m 文件中定义并在另一个 .m 文件中调用的格式,如下所示:
我的代码要求我创建一个 gui,它会在 gui 程序启动后立即初始化 ode 函数(第一部分),然后将接受初始条件并在按下按钮后立即计算对函数的调用(第二部分)。
我的问题是:我必须调用 .m 文件还是有办法将上述 ode 函数编码到 gui 代码中?如何将第二部分输入到 gui 代码中?
感谢所有做出贡献的人。
编辑:下面的代码是 GUI 的 GUIDE 代码,您可以随意测试它并确认错误。
python - 使用 Python 求解具有矢量系数的非线性 ODE 方程组
我需要为 y 解决下一个系统:
是这样的:
我基于两个脚本编写了一个 Python 程序。一个主程序和第二个 newton-jacobian 脚本,因为我使用的是牛顿迭代法,导致这个问题在 u 和 u' 处有 2 个边界条件
现在,我可以解决下一个问题:
仅当 k=常数时!
在我的问题中,k 取决于 x,在程序中计算,有 N 个值。
有谁知道或可以建议一种方法来解决我插入 k 的上述非线性系统,并且我尝试在第二个牛顿求解器脚本中调用 k_function(),但我没有成功。它不承认它。
任何解决非线性方程模拟系统的人的建议都将受到欢迎!
python - 在 Python 中优化微分方程中的常数
好的,那么我将如何编写代码来优化微分方程中的常数 a 和 b,例如 dy/dt = a*y^2 + b,使用curve_fit?我将使用 odeint 来求解 ODE,然后使用 curve_fit 来优化 a 和 b。如果您能就这种情况提供意见,我将不胜感激!
c++ - Boost OdeInt 中是否有 lsode 模拟?
里面有boost 1.53 和 OdeInt。它有一系列数值 ode 求解器。但是我想知道其中是否有lsode模拟 - 对于您已保证分析解决方案的情况?