Lyaunov Function는 ordinary differential equations (ODEs) 평형점의 안정성을 증명하는 도구이다.
예를 들어, Lyapunov Function인 를 다음과 같이 정의하자.
이때 를 가상 에너지라 생각하면 이해하기 쉽다.
여기서 목표 상태는 이다.
- 이면
- 목표에서 멀어질수록 가 커짐
- 목표에서 가까워질수록 가 작아짐
핵심 조건
Lyapunov Function은 일반적으로 다음 조건을 만족해야 한다.
그리고 시간에 따라 가 감소해야 된다.
이를 해석하면 다음과 같다.
- : 목표 상태가 아닐 때는 에너지가 존재
- : 시간이 지날수록 에너지가 감소
- 결국 : 시스템이 목표 상태로 수렴
공이 그릇 안에서 굴러가는 상황으로 생각하면 쉽다.
공이 어느 위치에서 시작하더라도 높이가 점점 낮아져 그릇의 가장 낮은 곳으로 이동한다. 이때 높이를 라 할 수 있다.
안정성 종류
| 조건 | 의미 |
|---|---|
| 목표 상태에서 더 멀어지지 않음 | |
| 시간이 지나면서 목표 상태로 수렴 | |
| 목표 상태로 지수적으로 빠르게 수렴 |
특히
이면 일반적으로 asymptotic stability를 보장한다.
Lyapunov Function 정의
이를 시간에 대해 미분하면
이므로
가 된다.
따라서 시스템의 에너지가 계속 감소하고, 결국
으로 수렴한다.
코드로 이해
Lyapunov Function를 다음과 같이 설정하자.
이를 미분해 보자.
이를 통해 다음과 같은 시뮬레이션을 구성할 수 있다.
Stable System
def system(t, state):
x, y = state
return [-x, -2 * y]
Lyapunov Fuction
def lyapunov(x, y):
return 0.5 * (x**2 + y**2)
Simulation
initial_state = [4.0, 3.0]
t_eval = np.linspace(0, 6, 500)
solution = solve_ivp(
system,
t_span=(0, 6),
y0=initial_state,
t_eval=t_eval
)
x_trajectory = solution.y[0]
y_trajectory = solution.y[1]
V_trajectory = lyapunov(x_trajectory, y_trajectory)
결과

이미지 출처: 직접 작성한 시뮬레이션 결과. 안정 시스템의 상태와 Lyapunov 함수가 시간에 따라 0으로 수렴하는 모습을 보여준다.