호모클리닉 오빗과 헤테로클리닉 오빗
정의1
공간 $X$ 와 함수 $f : X \to X$ 에 대해 다음과 같은 벡터필드가 미분방정식으로 주어져 있다고 하자. $$ \dot{x} = f(x) $$ 이 시스템의 한 플로우를 $\phi (t, x)$ 와 같이 나타내자.
호모클리닉
어떤 한 고정점 $x_{0}$ 에 대해 다음을 만족하는 $\phi$ 를 호모클리닉 오빗homoclinic orbit이라 한다. $$ \lim_{t \to \pm \infty} \phi ( t , x ) = x_{0} $$
헤테로클리닉
어떤 두 고정점 $x_{1} \ne x_{2}$ 에 대해 다음을 만족하는 $\phi$ 를 헤테로클리닉 오빗heteroclinic orbit이라 한다. $$ \begin{align*} \lim_{t \to - \infty} \phi ( t , x ) =& x_{1} \\ \lim_{t \to + \infty} \phi ( t , x ) =& x_{2} \end{align*} $$
설명
명명 그대로, 호모클리닉 오빗은 시간이 앞으로 흐르든 뒤로 흐르든 같은 고정점으로 가서 호모homo라는 접두사가 붙고, 헤테로클리닉 오빗은 다른 고정점으로 가서 헤테로hetero라는 접두사가 붙는다.
정의에서 직접적으로 언급하지는 않지만 호모클리닉 오빗은 $x_{0}$ 에서 들어오면서도 나가는 경로가 있어야하므로 새들이 될 것이고, 헤테로클리닉 오빗은 나가는 쪽인 $x_{1}$ 입장에선 불안정 매니폴드면서 들어가는 쪽인 $x_{2}$ 입장에선 안정 매니폴드가 되어야 한다.
시각화
헤테로클리닉 오빗은 그냥 한 점에서 다른 한 점으로 흘러가는 이미지기 때문에 상상하기 쉽지만, 폐곡선이면서 새들을 포함한다는 호모클리닉 오빗을 직관적으로 떠올리는 것은 쉽지 않다.
$$ \begin{align*} \dot{x} =& \sigma_{1} x + y \\ \dot{y} =& \left( \sigma_{2} - \sigma_{1} \right) y + \alpha x^{2} - \zeta xy \end{align*} $$
예로써 위와 같이 주어진 시스템에서 $\sigma_{1} = \alpha = \zeta = 1$ 그리고 $\sigma_{2} \approx -0.755$ 라 할 때 시스템에서 나타나는 호모클리닉 오빗만 시각화 해보자2 3.
오빗 내부의 초기점에서 플로우를 동영상으로 그려보면 다음과 같다.
코드
다음은 이 포스트에 사용된 자료들을 만드는 줄리아 코드다.
using Plots, LinearAlgebra
μ = -1.755
h = 0.1
f(v) = [v[1] + v[2], μ*v[2] + v[1]^2 - v[1]*v[2]]
pos = Base.product(-1.5:h:.5, -.5:h:2)
dir = f.(pos) ./ 10norm.(f.(pos))
v_ = [[-0.5,0.5]]
for _ in 1:500000
push!(v_, v_[end] + 0.0001f(v_[end]))
end
truncated_v_ = v_[340000:460000]
p1 = quiver(first.(pos), last.(pos), quiver = (first.(dir), last.(dir)),
xlabel = "x", ylabel = "y", color = :gray, size = [600, 600])
p1 = plot(p1, first.(truncated_v_[1:60000]), last.(truncated_v_[1:60000]), color = :black, lw = 2, label = "orbit", arrow = true)
p1 = plot(p1, first.(truncated_v_[60001:80000]), last.(truncated_v_[60001:80000]), color = :black, lw = 2, label = :none, arrow = true)
p1 = plot(p1, first.(truncated_v_[80001:90000]), last.(truncated_v_[80001:90000]), color = :black, lw = 2, label = :none, arrow = true)
p1 = plot(p1, first.(truncated_v_[90001:120000]), last.(truncated_v_[90001:120000]), color = :black, lw = 2, label = :none, arrow = true)
p1 = scatter(p1, [0], [0], color = :black, label = "saddle node", shape = :rect)
png(p1, "saddle_orbit.png")
anim = @animate for tk in 1:1000:460001
plot(p1, first.(v_[1:100:tk]), last.(v_[1:100:tk]), lw = 1, color = :blue, label = :none, arrow = true)
end
mp4(anim, "saddle_orbit.mp4", fps = 30)
같이보기
Kuznetsov. (1998). Elements of Applied Bifurcation Theory: p59. ↩︎
Wu. (2000). Homoclinic Bifurcation in an SIQR Model for Childhood Diseases: https://doi.org/10.1006/jdeq.2000.3882 ↩︎