DynamicalSystems 初始条件不工作的轨道图
Orbit Diagrams with DynamicalSystems Initial Condition not Working
我正在尝试使用 DynamicalSystems julia 包来绘制由以下方程控制的离散动力系统的轨道图:
y_{n+1} = 1- by_n^2
我可以让它绘图,但是我似乎无法让初始条件起作用,我正在尝试使用 y_0 = -0.68
的初始条件。
这是我的代码:
using DynamicalSystems
using PyPlot
function eom(dx, x, p, n)
dx[1] = 1 - p[1] * x[1]^2
end
ds = DiscreteDynamicalSystem(eom, [-0.68], [2.0, 0.0])
i = 1
pvalues = 0.0:0.001:2.0
n = 2000
Ttr = 2000
p_index = 1
output = orbitdiagram(ds, i, p_index, pvalues; n = n,
Ttr = Ttr, u0 = get_state(ds))
L = length(pvalues)
x = Vector{Float64}(undef, n*L)
y = copy(x)
for j in 1:L
x[(1 + (j-1)*n):j*n] .= pvalues[j]
y[(1 + (j-1)*n):j*n] .= output[j]
end
figure()
PyPlot.title("total points: $(L*n)")
plot(x, y, ls = "None", ms = 0.5, color = "black", marker = "o", alpha = 0.05)
xlim(pvalues[1], pvalues[end]);
xlabel("$b$"); ylabel("$y$")
tight_layout()
这是它生成的图形:
如果可能的话,谁能告诉我是否有办法使用 DynamicalSystems 获取分叉点。
抱歉,我没有想清楚。它已经考虑了初始条件,但分叉图独立于初始条件。在寻找分岔值方面,我写了一段代码来检查何时
y_{n+2} = y_{n}
但 y_{n+1} != y_{n}
这给出了第一个分岔值。
我正在尝试使用 DynamicalSystems julia 包来绘制由以下方程控制的离散动力系统的轨道图:
y_{n+1} = 1- by_n^2
我可以让它绘图,但是我似乎无法让初始条件起作用,我正在尝试使用 y_0 = -0.68
的初始条件。
这是我的代码:
using DynamicalSystems
using PyPlot
function eom(dx, x, p, n)
dx[1] = 1 - p[1] * x[1]^2
end
ds = DiscreteDynamicalSystem(eom, [-0.68], [2.0, 0.0])
i = 1
pvalues = 0.0:0.001:2.0
n = 2000
Ttr = 2000
p_index = 1
output = orbitdiagram(ds, i, p_index, pvalues; n = n,
Ttr = Ttr, u0 = get_state(ds))
L = length(pvalues)
x = Vector{Float64}(undef, n*L)
y = copy(x)
for j in 1:L
x[(1 + (j-1)*n):j*n] .= pvalues[j]
y[(1 + (j-1)*n):j*n] .= output[j]
end
figure()
PyPlot.title("total points: $(L*n)")
plot(x, y, ls = "None", ms = 0.5, color = "black", marker = "o", alpha = 0.05)
xlim(pvalues[1], pvalues[end]);
xlabel("$b$"); ylabel("$y$")
tight_layout()
这是它生成的图形:
如果可能的话,谁能告诉我是否有办法使用 DynamicalSystems 获取分叉点。
抱歉,我没有想清楚。它已经考虑了初始条件,但分叉图独立于初始条件。在寻找分岔值方面,我写了一段代码来检查何时
y_{n+2} = y_{n}
但 y_{n+1} != y_{n}
这给出了第一个分岔值。