RSolve 无法求解离散 Rossler 系统

发布于 2024-11-11 17:54:44 字数 720 浏览 4 评论 0原文

我正在研究混沌吸引子,并测试一些连续的->离散等价。我已经用这种方式对 Rossler 系统进行了连续模拟

a = 0.432; b = 2; c = 4;
Rossler = {
    x'[t] == -y[t] - z[t], 
    y'[t] == x[t] + a*y[t],
    z'[t] == b + x[t]*z[t]-c*z[t]};
sol = NDSolve[
  {Rossler, x[0] == y[0] == z[0] == 0.5}, 
  {x, y, z}, {t,500}, MaxStepSize -> 0.001, MaxSteps -> Infinity]

现在,当尝试使用 RSolve 评估离散等效系统时,Mma 没有做任何事情,甚至没有错误,它只是无法解决它。

RosslerDiscreto = {
       x[n + 1] == x[n] - const1*(y[n] + z[n]),
       y[n + 1] == 1 - a*const2)*y[n] + const2*x[n], 
       z[n + 1] == (z[n]*(1 - const3) + b*const3)/(1 - const3*x[n])}

我想知道 RSolve 是否有一个数值函数,类似于 DSolve 的 NDSolve 。 我知道我可以用一些 For[] 循环进行计算,只是想知道是否存在这样的函数。

I'm working with chaotic attractors, and testing some continuous-> discrete equivalences. I've made a continuous simulation of the Rossler system this way

a = 0.432; b = 2; c = 4;
Rossler = {
    x'[t] == -y[t] - z[t], 
    y'[t] == x[t] + a*y[t],
    z'[t] == b + x[t]*z[t]-c*z[t]};
sol = NDSolve[
  {Rossler, x[0] == y[0] == z[0] == 0.5}, 
  {x, y, z}, {t,500}, MaxStepSize -> 0.001, MaxSteps -> Infinity]

Now, when trying to evaluate a discrete equivalent system with RSolve, Mma doesn't do anything, not even an error, it just can't solve it.

RosslerDiscreto = {
       x[n + 1] == x[n] - const1*(y[n] + z[n]),
       y[n + 1] == 1 - a*const2)*y[n] + const2*x[n], 
       z[n + 1] == (z[n]*(1 - const3) + b*const3)/(1 - const3*x[n])}

I want to know if there is a numerical function for RSolve, analogous as the NDSolve is for DSolve.
I know i can make the computation with some For[] cycles, just want to know if it exists such function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灼疼热情 2024-11-18 17:54:44

RecurrenceTable 是 RSolve 的数字模拟:

rosslerDiscreto = {
  x[n+1] == x[n] - C[1]*(y[n] + z[n]),
  y[n+1] == (1 - a*C[2])*y[n] + C[2]*x[n],
  z[n+1] == (z[n]*(1 - C[3]) + b*C[3]) / (1 - C[3]*x[n]),
  x[0] == y[0] == z[0] == 0.5
} /. {a->0.432, b->2, c->4, C[1]->0.1, C[2]->0.1, C[3]->0.1};
coords = RecurrenceTable[rosslerDiscreto, {x,y,z}, {n,0,1000}];
Graphics3D@Point[coords]

离散动态系统行为示例

RecurrenceTable is the numeric analogue to RSolve:

rosslerDiscreto = {
  x[n+1] == x[n] - C[1]*(y[n] + z[n]),
  y[n+1] == (1 - a*C[2])*y[n] + C[2]*x[n],
  z[n+1] == (z[n]*(1 - C[3]) + b*C[3]) / (1 - C[3]*x[n]),
  x[0] == y[0] == z[0] == 0.5
} /. {a->0.432, b->2, c->4, C[1]->0.1, C[2]->0.1, C[3]->0.1};
coords = RecurrenceTable[rosslerDiscreto, {x,y,z}, {n,0,1000}];
Graphics3D@Point[coords]

Example of discrete dynamic system behaviour

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文