问题标签 [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.
matlab - matlab ode45 检索参数
我正在 Matlab 中试验 ode45。我已经学会了如何将参数传递给 ode 函数,但我仍然有一个问题。假设我想计算汽车的轨迹(速度曲线),并且我有一个函数,例如getAcceleration
,它可以为我提供汽车的加速度以及正确的档位:[acceleration, gear] = getAcceleration(speed,modelStructure)
其中modelStructure
代表汽车的型号。
ode 函数将是:
然后我以这种方式调用 Ode45 积分器:
问题是:如何获得矢量存储齿轮?我应该有类似的东西[t,y,gear]=ode45(....)
还是应该gear
在y
向量内?
我一直在处理我的代码并使用事件函数,我现在能够获得汽车“齿轮”的变化(作为事件)。现在我有一个与相同代码相关的新问题。想象一下,当我评估 de 'dy' 向量时,我能够得到一个进一步的值 Z,这让我可以大幅加快调用加速度计算 (getAcceleration):
并假设我也能够在初始条件下计算 Z。问题是我无法计算 Z 导数。
有没有办法通过 Z 值抛出步进而不集成它?
多谢你们。
matlab - BVP 的射击方法解决方案的 ode45/fsolve 问题
我正在尝试使用拍摄方法解决 MATLAB 中的边界值问题。但是,当我尝试通过 fsolve 传递我的函数时,我收到如下警告:警告:在 t=-9.462647e+001 失败。如果不将步长减小到低于时间 t 允许的最小值 (2.273737e-013),则无法满足积分容差。
我尝试了一些常见的解决方法,例如使用不同的 ODE 求解器并更改 ODE 求解和 fsolve 中的容差,但无济于事。目前,当我对我的参数运行 fsolve 时,它没有任何改变,这与我最初的猜测相同。
我已经包含了主脚本文件的代码以及 fsolve 调用的函数文件。
matlab - Matlab - 求解三阶微分方程
如何使用 ODE45 函数求解这个方程?
我试过这个:
但我需要将 X 部分放在等式中 - 我不知道如何......
matlab - MATLAB:使用 ode45 时是否可以有两个事件值?
我想对我的 ode45 运动方程计算有两个限制:位置和时间。我已经让时间事件开始工作,但我不确定是否以及如何添加另一个事件来限制位置。编辑:我在一个 ODE 方程中也有许多不同的粒子耦合在一起,并且一旦它们到达“屋顶”就需要它们单独停止,因为它们都以不同的速度行进......我能通过事件来实现这一点吗?我有一个想法,我将如何做到这一点,但它非常复杂,可能会很慢......
matlab - 在 Matlab 中使用 ode45 进行弹丸运动
我正在尝试在 Matlab 中使用阻力对弹丸运动进行建模。一切都很完美......除了我不知道如何让它在“子弹”击中地面时停止。
我最初尝试了一个迭代循环,定义一个数据数组,并在 y 值为负时清空该数组的单元格......不幸的是,ode 求解器不太喜欢这样。
这是我的代码
我认为这会在 y=0 时定义一个事件并停止射弹,但它什么也没做。我究竟做错了什么?
matlab - 使用 Matlab ODE 求解器收敛
嗨,我正在解决一个初始值 ODE 问题,并希望能够绘制收敛图。我检查了文档,发现在每个时间步都会计算错误,但我找不到返回这个值的方法。有没有人有任何想法,也许是通过玩输出函数(来自 odeset)。谢谢
matlab - 编写实现欧拉方法的matlab函数?
我应该编写一个 MATLAB 函数,它采用 y'(t) = a*y(t) +b 形式的一阶常微分方程,初始点 y(t0)=y0 作为输入,并计算解的前 15 个点. 还绘制前 15 个点的解曲线。我们要求解的方程是 ;y'(t) = 4*y(t)+1,初始点 y(0)=0。
对于这个函数,我写了下面的代码,但这给了我一个关于 y 的错误。我应该如何正确实现欧拉函数?而且我无法确定如何绘制解曲线..
function - Matlab ode求解器使用函数中的时间来获取事件中的“值”
我进行了广泛的搜索,并认为我不会是唯一一个遇到这个问题的人,但它看起来像我。
我正在通过 ode15s 解决一首颂歌(我的问题可能很棘手),我使用“事件”选项来找到我的兴趣点。问题是:我在“价值”中使用的等式取决于(除其他外)特定时间(因此价值= f(t,y,y'),我找不到将当前时间传递给这个函数,只有 y 向量可用。
有人有什么想法吗?在此先感谢大家,祝大家假期愉快!
python - 离散值的 ODE 集成
我想使用scipy.integrate.ode
求解器。我只能将可调用函数定义f
为离散点数组(因为它取决于先前迭代的积分结果)。但从文档看来,集成商希望可调用函数是一个连续函数。我想需要进行某种插值。求解器可以自己处理这个问题,还是我需要编写一些插值程序?是否有一些解释它的 scipy 文档/教程?
matlab - 我可以及时向后运行 ode45 吗?
我使用 ode45 来求解微分方程,但 tspan 始终必须使系统及时向前运行。我可以让 ode45 将系统向后运行到负 t 吗?
我遇到的具体问题使用了一个上升指数函数,即从 t=-infinity 到 t=0 的 a*exp(at),对于所有 t>0,该函数为零。如您所见,在我的问题中不可能翻译此函数并使用区间 t=0 到 t=infinity。所以,我希望 ode45 在负 t 下工作。
谢谢!
编辑:经过一番思考,我意识到我的问题措辞很糟糕,而且我的理解也很差,所以让我在这里重申一下。
我的 ODE 的形式为 x'=f(t)x,其中 f(t)=a*exp(at) 从 -infinity 到 0。系统从 t=-infinity 的一些初始条件开始。另一方面,ode45 要求 tspan 为正,并且还需要 t=0 时的初始条件。那么我怎样才能改变这两个标准呢?
谢谢 :)