问题标签 [differential-equations]
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 中求解常微分方程(ODE)系统
我必须求解以下形式的常微分方程组:
其中x和y是我需要找出的变量,s是自变量;其余的都是常数。到目前为止,我试图用 ode45 解决这个问题,但没有成功:
其中@yprime 具有方程组。我收到以下错误消息:
YPRIME 返回一个长度为 0 的向量,但初始条件向量的长度为 2。YPRIME 返回的向量和初始条件向量必须具有相同数量的元素。
有任何想法吗?谢谢
matlab - 为 DE 系统实施 Runge-Kutta
我正在尝试在 MATLAB中实现用于 DE 系统的 Runge-Kutta 方法。我没有得到正确的答案,我不确定代码或我用来运行它的命令是否有问题。
这是我的代码:
我正在尝试在这个问题上进行测试。这是我的命令和输出:
>> U1 = @(t, u) 3*u(1) + 2*u(2) - (2*t^2 + 1)*exp(2*t);
>> U2 = @(t, u) 4*u(1) + u(2) + (t^2 + 2*t - 4)*exp(2*t);
>> a = 0; b = 1; 阿尔法 = [1 1]; 米 = 2; h = 0.2; N = (b - a)/h;
>> RKSystems(a, b, m, N, alpha, {U1 U2});
t = 0.00;w(1) = 1.0000000000; w(2) = 1.0000000000;
t = 0.20;w(1) = 2.2930309680;w(2) = 1.6186020410;
t = 0.40;w(1) = 5.0379629523;w(2) = 3.7300162165;
t = 0.60;w(1) = 11.4076339762;w(2) = 9.7009491301;
t = 0.80;w(1) = 27.0898576892;w(2) = 25.6603894354;
t = 1.00;w(1) = 67.1832886708;w(2) = 67.6103125539;
matlab - 线性双方程系统,两个变量的二阶导数
如果这被认为是重新发布,请原谅我,但我被告知我可能给出了错误的格式。
我正在尝试求解两个线性二阶微分方程。我想将它们分解为单阶方程,但我看不出两个变量在这两个问题中如何具有二阶导数。
我对 dsolve 和 ode45 都做了一些努力
这是我的 dsolve 代码:
它确实给了我非常非常长的方程式,我似乎无法根据时间绘制,我也不知道为什么。如果有人能给我建议,我将不胜感激。感谢您的关注!
matlab - MATLAB - 追求曲线(捕食者/猎物)
在我的工程课上,我们正在编写一个“非平凡的”捕食者/猎物追捕问题。
这是情况的要点:有一个猎物正试图逃离捕食者。每个都可以建模为可以在 MATLAB 中动画的粒子(我们必须使用这种编码语言)。
猎物:比捕食者更容易操纵(转弯)捕食者:可以比猎物移动得更快
我必须为捕食者和猎物创建代码,这些代码将用于班级比赛。
这基本上是最终产品的样子: http ://www.brown.edu/Departments/Engineering/Courses/En4/Projects/pred_prey.gif
目标是在最短的时间内捕捉到对方的猎物,让我的猎物变得无法被对方的捕食者捕捉(或者至少在很长一段时间内逃脱)。
以下是具体的设计约束: 3. 设计约束:捕食者和猎物只能在 xy 平面内移动 模拟将运行 250 秒的时间段。捕食者和猎物都将受到三种力量的影响: (a) 推进力;(b) 粘性阻力;(c) 随机的时变力。(给出所有方程) 1. 推进力将由两个竞争群体提供的函数确定 如果捕食者和猎物之间的距离低于 1m,则假设捕食者捕获猎物。你不能使用 rand() 函数来计算你的捕食者/猎物力量——唯一的随机力量应该是那些由提供的脚本生成的力量。(具有随机力的 EOM 对于 ODE 求解器来说是不可能积分的,它最终会陷入无限循环)。对于比赛,我们将提供 MATLAB 代码,用于计算和动画参赛者的轨迹,并确定每场比赛的获胜者。测试代码将以 SI 单位运行。
我正在寻找任何可以帮助我制定策略的资源。我看过基本的追逐曲线,但我很想看一些猎物没有直线移动的例子。任何其他编码建议或策略将不胜感激!
c++ - 是否有一种快速算法的计算能力是二分之一的倍数?
我正在编写一个解决平面受限三体问题的程序。其方程如下。此函数计算位置和速度的导数并将它们写入数组。
所以我必须计算位置向量的平方,然后将其提高到 3/2 的幂。我认为这些操作占用了很大一部分计算时间。
现在我使用 math.h 的 pow 函数。是否有另一种更快的算法来计算这种能力?我尝试使用快速反平方根(稍后再进行立方),但它为我的目的提供了太不精确的值并且工作时间更长(可能是因为立方)。
谢谢!
microcontroller - 在微控制器上求解 ODE
我想解决微控制器上的两个 ODE 一阶问题。必须每 100 毫秒评估一次
基本上我想到了使用欧拉积分(Runge-Kute I)
我希望误差小于 0.001。我如何确定在达到该错误率之前应该运行多少次迭代?
wolfram-mathematica - 为什么我在 NDSolve 中的函数不等于 "If"?[更新 1]
我的问题是:为什么rhsexpr
有效但rhsfunc
无效。谢谢。:)
rhsfunc
定义为:
rhsexpr
定义为:
rhsexpr
作品。
rhsfunc
不起作用,提示 Encountered non-numerical value for a derived at t == 0
更新 1
实际上,我定义的rhsfunc
就像 m@ 在其内置文档中所做的那样,如下所示:
c++ - 停止与与推力一起使用的 odeint 集成
我正在尝试将 ODE 系统与 odeint 库集成,并在一组点上并行推进(这意味着具有许多不同初始条件的相同 ODE)。特别是我正在使用自适应步长算法runge_kutta_dopri5。在某些情况下,算法会失败,从而减小步长并极大地减慢整个集成过程。
如果某些测试失败,有没有办法仅针对集合中的某些点停止集成过程?
在我的特殊情况下,由于我正在积分重力问题,我想在点靠近吸引子时停止积分,因此距离小于某个限制。
在串行计算中,我认为这可以通过带有函数的自定义 while 循环来执行,正如这个问题stepper.try_step
背后的想法或多或少所说明的那样。
如何在带推力的并行计算中执行此操作?
谢谢。
r - 拟合微分方程:如何将一组数据拟合到 R 中的微分方程
使用数据集:
我想将这些数据拟合到下面的微分方程中:
其中 C 是数据集中的浓度和时间 t。这也将给出 k 的结果。谁能给我一个线索如何在 R 中做到这一点?谢谢。
r - 如何将多个参数拟合到R中的微分方程?
有了这样的数据集
我想将此数据拟合到模型中,该模型定义如下
我参考了这个页面(http://www.inside-r.org/packages/cran/FME/docs/modCost),并开发了以下代码:
但是,我收到以下警告消息:
谁能告诉我问题出在哪里?或者如何快速完成?谢谢。