问题标签 [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.

0 投票
0 回答
579 浏览

differential-equations - 一阶偏微分方程

我正在解决一个完全不相关的问题。我已将其建模为生成函数并直截了当:

其中an是正整数。

我该如何继续寻找解决方案f(x,y)?似乎没有教科书对此有很好的方法。

0 投票
2 回答
10211 浏览

math - 你如何将分段函数输入到 wolfram alpha 中?

我尝试了几种方法,例如在某些值处定义函数 f(t),然后在我的方程中使用 f(t),但到目前为止对我来说没有任何效果。我喜欢使用 wolfram alpha,它是帮助我更好地理解高级微分方程作业的宝贵资源。我正在尝试绘制从 0 到 5pi
的分段方波方程 x'' + 2x' + x = f(t)

f(t)是一个方波,在 0 和 pi 之间取值为 5,然后在 pi 和 之间取值为 0 2*pi,然后在 2*pi 和 3*pi 之间取值为 5……等等。f(t)是 ODE 的驱动函数。图表看起来像什么0 < t < 5*pi 任何帮助将其输入绘图仪,例如 wolfram alpha 将不胜感激,ty!

0 投票
1 回答
2944 浏览

matlab - 在 MATLAB 中实现显式欧拉方法(用于 ODE)

我到处搜索,我找不到任何东西。

首先,让我说我从未使用过 Mat Lab,所以我不知道我在做什么。

我尝试了几件事,但没有一个奏效。显然 y(0)=2 试图创建一个值为 2 的 0 个单位的列表?

无论如何,有人可以帮助我吗?我需要在 Mat Lab 中编写一个灵活的欧拉方法方程来求解一些这样的方程。

1) y' = 5-3sqrt(y) ; y(0)=2

当 h= .1 , .05 , .025, .01 && t =.5 ,1 , 1.5 , 2 , 2.5 ,3

我不知道我在做什么。

0 投票
2 回答
66 浏览

wolfram-mathematica - 有没有一种方法可以将表达式放入 Mathematica 中的变量中,而不用关心局部变量?

我在 Mathematica 中使用 NDSolve 来求解一组方程。我正在寻找某种方法将方程组放入一个变量中,然后在 NDSolve 中引用它,以使代码更易于阅读。

这是我正在做的一个更简单的版本:

评估时它没有给出正确的答案:

这是因为 x,y,a,b 是局部变量,它们的内部名称与 x,y,a,b 不同。如果我将 equs 的定义更改为函数,它可以给出正确的结果:

但是我的问题是我的真实代码中有 20 多个 equs 变量,并且明确地写出它们会使代码不易阅读。有没有办法解决这个问题?

0 投票
1 回答
767 浏览

matlab - 连续求解微分方程

对于上下文,我正在尝试在 Matlab 中建模和模拟时空神经网络。我已经确定了一个微分方程,它将代表我的神经元的动态。

现在,我希望这个微分方程“连续”求解,这意味着我的模拟应该运行,做一些事情,同时我的神经元应该根据微分方程更新。

目前,我有两种方法:

首先,我可以这样做:

所以想法是在后台启动一个并行任务,它将无限运行 ode45 并直接更新我的神经元状态nn.U。但是,据我所知,ode45 通常会为每个值存储一个“历史记录”,t并在计算完成时返回这些值(例如tat TFINAL)。我对这些值不感兴趣,我希望通过这种方式运行 ode45,我很快就会耗尽内存。

另一个想法是无限地一遍又一遍地调用 ode45(也在异步后台任务中):

就像第一种方法一样,这对我来说似乎非常笨拙和尴尬。我有一种感觉,必须有一个更优雅的解决方案来解决我的问题。

也许 ode45 在这里不是正确的选择?

编辑:只是为了澄清,差异。方程是一个随时间变化的常方程,没有什么花哨的和可以被 ode45 解决的(即dUdt = -U + some-stuff * networkoutput

0 投票
1 回答
2130 浏览

c - 并行 (CUDA) 二维泊松求解器

我必须使用预测校正方案来求解二维泊松方程。该方程必须在n*m非均匀网格上求解。预测-校正方案是指通过将一步的解和一个值相加得到x一步的解。该值是通过求解线性方程组获得的,类似于:k+1kdeltadelta

A(x^k) * 增量 = b(x^k)

通过应用有限差分法,矩阵A具有5非零对角线:主对角线,紧邻上方和下方的对角线以及上方和下方的两个(由n-1零对角线与其他对角线分开)。不均匀,A显然是不对称的。此外, 的主对角线A和 向量b将根据旧解决方案进行更改。现在,我想使用并行算法来解决这个问题,因为寻找delta大网格可能非常昂贵。有任何想法吗?至于现在,我正在尝试 Jacobi 方法。

我相信我有两种可能的途径:我可以坚持直接和顺序方法或使用迭代方法。如果我选择后者,那么如果我想利用并行性,就必须使用 Jacobi 的方法。你知道其他并行方法吗?如果我选择前者,你知道是否有一种算法可以利用我5的对角线完全非零这一事实吗?Thomas 的块矩阵算法怎么样?

0 投票
2 回答
1534 浏览

differential-equations - 绘制非线性微分方程的解

我在 Maxima 中有一个微分方程组。我正在尝试找出解决方案。

但我有一个错误:

0 投票
0 回答
3328 浏览

matlab - BVP 的射击方法解决方案的 ode45/fsolve 问题

我正在尝试使用拍摄方法解决 MATLAB 中的边界值问题。但是,当我尝试通过 fsolve 传递我的函数时,我收到如下警告:警告:在 t=-9.462647e+001 失败。如果不将步长减小到低于时间 t 允许的最小值 (2.273737e-013),则无法满足积分容差。

我尝试了一些常见的解决方法,例如使用不同的 ODE 求解器并更改 ODE 求解和 fsolve 中的容差,但无济于事。目前,当我对我的参数运行 fsolve 时,它​​没有任何改变,这与我最初的猜测相同。

我已经包含了主脚本文件的代码以及 fsolve 调用的函数文件。

0 投票
2 回答
4043 浏览

matlab - matlab求助:给我一个二阶微分方程,我需要用matlab求单位阶跃响应和脉冲响应吗?

我有二阶微分方程

t 以秒为单位并且大于 0。A1、B1、C1 是常数,它们等于:

这个系统是线性的、时不变的和随意的。该系统称为H1。我想用 Matlab 计算和绘制这个系统的脉冲响应函数 h1(t) 和单位阶跃响应函数 g1(t)。

0 投票
1 回答
10899 浏览

matlab - Matlab - 求解三阶微分方程

如何使用 ODE45 函数求解这个方程?

我试过这个:

但我需要将 X 部分放在等式中 - 我不知道如何......