해밀턴 원리

편집 역사 토론
물리 수치해석 구조해석 마지막 수정: 2026-08-29 04:29:07

상위 문서: 최소작용 원리

1. 개요[편집]

해밀턴 원리
Hamilton's Principle
진술$\delta\!\int_{t_1}^{t_2} L\,dt = 0$, $\;\delta q(t_1)=\delta q(t_2)=0$
라그랑지언$L = T - V$ (보존계)
결과일반화 좌표마다 하나씩의 오일러-라그랑주 방정식
구속 처리좌표 흡수(최소좌표 ODE) 또는 라그랑주 승수(DAE)
비보존 확장라그랑주-달랑베르 형식 · 레일리 산일 함수
이산 판본변분 적분기 — 이산 작용의 정류화

힘을 그리지 마라. 에너지를 두 줄 쓰고 미분기를 돌려라. 그게 전부다.

해밀턴 원리(Hamilton’s principle)는 시각 t1t_1t2t_2 에서의 배치가 고정된 계에 대해, 실제 운동이 작용 S[q]=t1t2L(q,q˙,t)dtS[q]=\int_{t_1}^{t_2}L(q,\dot q,t)\,dt 를 정류로 만드는 경로라는 원리다. 형식적으로는

δS  =  δ ⁣t1t2L(q,q˙,t)dt  =  0,δq(t1)=δq(t2)=0\delta S \;=\; \delta\!\int_{t_1}^{t_2} L(q,\dot q,t)\,dt \;=\; 0, \qquad \delta q(t_1)=\delta q(t_2)=0

한 줄이 전부이고, 여기에 오일러-라그랑주 방정식의 유도 기계를 통과시키면 운동방정식이 나온다.

이 문서는 그 한 줄을 실제 계에 적용하는 실전 매뉴얼이다. 원리의 계보와 “왜 정류인가”는 최소작용 원리가, δ\delta 에서 미분방정식으로 넘어가는 유도 자체는 오일러-라그랑주 방정식이 이미 다루므로 반복하지 않는다. 여기서 답할 것은 넷이다. 좌표는 어떻게 고르고, 구속은 어떻게 처리하고, 마찰처럼 작용에 안 들어가는 것은 어떻게 붙이고, 이 원리가 어떻게 그대로 적분기가 되는가.

2. 정식화 절차 — 다섯 단계[편집]

실무에서 해밀턴 원리를 쓴다는 것은 다음 다섯 줄을 밟는다는 뜻이다.

  1. 자유도를 센다. 강체 nn 개면 3차원에서 6n6n, 관절 하나가 구속 cc 개를 걸면 6nc6n - \sum c.
  2. 일반화 좌표 q1,,qfq_1,\dots,q_f 를 고른다. 자유도 수만큼 고르면 구속이 사라진다.
  3. TTVV 를 그 좌표로 쓴다. 이 단계가 노동의 90%다. 특히 TT 를 쓸 때 좌표 변환의 시간 의존성을 빠뜨리지 않는 것이 핵심.
  4. 오일러-라그랑주 식을 돌린다. ddtLq˙iLqi=Qi\frac{d}{dt}\frac{\partial L}{\partial \dot q_i} - \frac{\partial L}{\partial q_i} = Q_i.
  5. 초기조건을 준다. 해밀턴 원리 자체는 양 끝 배치를 고정한 경계값 문제지만, 거기서 나온 운동방정식은 초기값 문제로 푼다.

5번의 미묘함을 짚고 넘어갈 가치가 있다. 원리는 BVP고 방정식은 IVP다. 그리고 BVP의 해는 존재하지 않을 수도, 여럿일 수도 있다 — 지구에서 화성으로 가는 궤도를 “출발 시각과 도착 시각을 고정하고” 찾는 램버트 문제가 딱 그 상황이고, 답이 여러 개 나오는 것이 정상이다. 이 다중성은 최소작용 원리에서 이야기한 켤레점과 정확히 같은 현상이다.

3. 좌표는 마음대로 골라도 된다[편집]

해밀턴 원리의 실전 위력 1번은 점변환에 대한 형태 불변성이다. qQ(q,t)q \to Q(q,t) 같은 어떤 가역 좌표 변환을 해도 LL 을 새 좌표로 다시 쓰기만 하면 오일러-라그랑주 식이 똑같은 모양으로 성립한다. 작용은 스칼라 범함수이고 정류라는 성질은 좌표에 무관하기 때문이다.

이게 실무에서 무슨 뜻인가. 뉴턴 형식에서 회전 좌표계로 옮기면 원심력·코리올리력 같은 겉보기 힘을 손으로 챙겨 넣어야 하고, 하나 빠뜨리면 조용히 틀린다. 라그랑주 형식에서는 회전 좌표로 TT 를 쓰기만 하면 그 항들이 L/q\partial L/\partial q 에서 저절로 튀어나온다. 로봇 팔의 동역학 M(q)q¨+C(q,q˙)q˙+G(q)=τM(q)\ddot q + C(q,\dot q)\dot q + G(q) = \tau 에서 코리올리·원심 항 CC 가 관성행렬의 편미분(크리스토펠 기호와 같은 조합)으로 자동 생성되는 것이 그 예다.1 회전좌표계 CFD에서 소스항을 손으로 넣다 부호를 틀리는 사고가 여기서는 구조적으로 안 일어난다.

4. 구속 처리 — 두 갈래[편집]

(가) 좌표에 흡수한다. 홀로노믹 구속 g(q,t)=0g(q,t)=0 이라면 그 구속을 자동으로 만족하는 최소 좌표계를 잡는다. 진자면 각도 θ\theta 하나, 회전 관절로 이어진 팔이면 관절각들. 결과는 최소 좌표 ODE이고, 미지수가 자유도 수만큼뿐이라 가장 빠르고 표류가 없다. 로보틱스와 다관절 캐릭터 시뮬레이션의 국룰이며, 트리 구조에 대해서는 관절각 좌표로 O(n)O(n) 에 푸는 순환 알고리즘(Featherstone류)까지 나와 있다.

단점은 명확하다. 루프가 있으면 최소 좌표를 못 잡는다. 4절 링크나 병렬 로봇처럼 폐루프가 생기는 순간 좌표만으로는 구속을 표현할 수 없다.

(나) 라그랑주 승수를 쓴다. 구속마다 승수를 붙여 L=L+λTg(q,t)L^\ast = L + \lambda^{\mathsf T}g(q,t) 를 변분하면

M(q)q¨+Cq˙+G  =  Q+Gc(q)Tλ,g(q,t)=0,Gc=gqM(q)\,\ddot q + C\dot q + G \;=\; Q + G_c(q)^{\mathsf T}\lambda, \qquad g(q,t) = 0, \qquad G_c = \frac{\partial g}{\partial q}

이 나온다. 승수 λ\lambda 는 그 구속을 유지하는 구속력의 크기 그 자체다(라그랑주 승수법). 대가는 이 계가 ODE가 아니라 지표 3 미분대수방정식(DAE) 이라는 것. 그대로 적분기에 넣으면 대개 터지므로 실무에서는 구속식을 두 번 미분해 가속도 수준으로 내리는데, 그러면 위치·속도 구속이 수치오차만큼 표류한다. 대책이 셋이다.

  • 바움가르테 안정화: 가속도 구속식에 2αg˙+β2g2\alpha\dot g + \beta^2 g 를 더해 오차를 감쇠시킨다. 싸지만 α,β\alpha,\beta 가 마법 상수라 사람 손을 탄다.
  • GGL(Gear-Gupta-Leimkuhler) 정식화: 속도 구속에도 승수를 하나 더 붙여 지표를 2로 내린다. 구조는 지저분해지지만 표류가 원리적으로 잡힌다.
  • 투영(projection): 매 스텝 뒤 구속 다양체 위로 되쏘아 준다. 게임 물리의 제약 해결기가 위치 보정을 하는 것이 사실상 이것.

(다) 그리고 함정: 비홀로노믹 구속. 미끄러지지 않고 굴러가는 바퀴처럼 A(q)q˙=0A(q)\dot q = 0 꼴로만 쓰이고 적분해서 g(q)=0g(q)=0 으로 만들 수 없는 구속이 있다. 여기서 해밀턴 원리를 순진하게 적용하면 틀린 답이 나온다. 구속을 만족하는 경로들끼리만 비교해서 작용을 정류화하는 방식(바코노믹, vakonomic)과, 구속력이 가상 변위에 일을 하지 않는다는 달랑베르 조건을 부과하는 방식(라그랑주-달랑베르)이 비홀로노믹인 경우 서로 다른 운동방정식을 준다. 실제 물리를 맞히는 쪽은 라그랑주-달랑베르다.2 홀로노믹 구속에서는 둘이 일치하기 때문에 이 차이가 눈에 안 띄다가, 굴림 구속이 있는 순간 조용히 물린다.

5. 비보존력과 산일[편집]

마찰·감쇠·구동 토크는 퍼텐셜로 쓸 수 없으니 LL 안에 안 들어간다. 확장 방법은 두 가지다.

라그랑주-달랑베르 형식. 작용의 변분에 비보존력의 가상일을 그냥 더한다.

t1t2 ⁣(δL+iQiδqi)dt  =  0        ddtLq˙iLqi=Qi\int_{t_1}^{t_2}\!\left(\delta L + \sum_i Q_i\,\delta q_i\right) dt \;=\; 0 \;\;\Longrightarrow\;\; \frac{d}{dt}\frac{\partial L}{\partial \dot q_i} - \frac{\partial L}{\partial q_i} = Q_i

QiQ_i 는 실제 힘 Fk\mathbf F_k 로부터 Qi=kFkrk/qiQ_i=\sum_k \mathbf F_k\cdot\partial \mathbf r_k/\partial q_i 로 계산한다. 이건 더 이상 순수한 변분 원리가 아니다 — 정류로 만들 범함수가 없고, “변분 항등식”에 가깝다. 그래서 이 경우 뇌터 정리의 보장도 함께 사라진다.

레일리 산일 함수. 감쇠력이 속도에 선형이면 F=12ijcijq˙iq˙j\mathcal F = \tfrac12\sum_{ij} c_{ij}\dot q_i\dot q_j 라는 이차형식 하나로 묶을 수 있고, 그러면 방정식이

ddtLq˙iLqi+Fq˙i=Qi\frac{d}{dt}\frac{\partial L}{\partial \dot q_i} - \frac{\partial L}{\partial q_i} + \frac{\partial \mathcal F}{\partial \dot q_i} = Q_i

로 예쁘게 정리된다. 소산 전력이 2F2\mathcal F 라는 해석도 붙는다. 구조동역학의 레일리 감쇠 C=αM+βK\mathbf C = \alpha\mathbf M + \beta\mathbf K 가 정확히 이 틀에서 나오는 감쇠 행렬이며, 물리적 근거보다 “모드 해석에서 감쇠행렬이 질량·강성과 동시에 대각화되어 계산이 편해서” 쓰인다는 것이 업계의 공공연한 비밀이다.3 모드 해석 문서 참고.

6. 연속체와 다물체 — 질량행렬은 어디서 오는가[편집]

해밀턴 원리는 유한 자유도계에만 쓰는 것이 아니다. 좌표를 장(field)으로 바꾸면 그대로 연속체 동역학이 된다. 오일러-베르누이 보라면

S[w]=t1t2 ⁣ ⁣0(12ρAw˙212EI(w)2+qw)dxdtS[w] = \int_{t_1}^{t_2}\!\!\int_0^\ell \left(\tfrac12\rho A\,\dot w^2 - \tfrac12 EI\,(w'')^2 + q\,w\right) dx\,dt

를 정류화해서 ρAw¨+(EIw)=q\rho A\,\ddot w + (EI\,w'')'' = q 를 얻고, 경계항에서 자유단의 모멘트·전단 조건이 공짜로 딸려 나온다(보 이론).

여기서 유한요소법 실무자에게 중요한 결론 하나가 나온다. 정합 질량행렬(consistent mass matrix)은 운동에너지 항 δ ⁣Tdt\delta\!\int T\,dt 에서 나온다.

Me=ΩeρNTNdΩ\mathbf M_e = \int_{\Omega_e} \rho\,\mathbf N^{\mathsf T}\mathbf N \,d\Omega

는 사람이 고른 근사가 아니라 해밀턴 원리가 시행함수 N\mathbf N 에 대해 뱉은 답이다. 현업에서 자주 쓰는 집중 질량행렬(lumped mass)은 이 결과를 일부러 대각화해 명시적 시간적분을 싸게 만든 의도적 근사이며, 그 대가로 고주파 모드 주파수가 달라진다. “왜 lumped를 쓰면 고유진동수가 조금 낮게 나오나요”의 답이 여기 있다.

다물체 쪽에서는 유연체가 붙으면 두 갈래로 갈린다. 강체 기준틀에 작은 탄성 변형을 얹는 부유 기준틀(floating frame of reference) 정식화와, 절점 위치·기울기를 전역 좌표로 직접 쓰는 ANCF(absolute nodal coordinate formulation) 다. 전자는 소변형에 강하고 질량행렬이 배치에 의존해 복잡해지며, 후자는 대변형·대회전에 강하고 질량행렬이 상수가 되는 대신 탄성력이 심하게 비선형이 된다. 어느 쪽이든 출발점은 같은 δ ⁣(TV)dt=0\delta\!\int(T-V)\,dt = 0 이다.

7. 르장드르 변환 — 정준방정식으로[편집]

L(q,q˙,t)L(q,\dot q,t) 에서 일반화 운동량 pi=L/q˙ip_i = \partial L/\partial\dot q_i 를 독립변수로 바꾸는 르장드르 변환

H(q,p,t)=ipiq˙iLH(q,p,t) = \sum_i p_i\dot q_i - L

을 하면 2계 방정식 ff 개가 1계 방정식 2f2f 개, 즉 정준방정식 q˙i=H/pi\dot q_i = \partial H/\partial p_i, p˙i=H/qi\dot p_i = -\partial H/\partial q_i 가 된다. 이때 해밀턴 원리 자체도 수정 해밀턴 원리 δ ⁣(ipiq˙iH)dt=0\delta\!\int(\sum_i p_i\dot q_i - H)\,dt = 0 로 다시 쓸 수 있고, 여기서는 qqpp 를 독립으로 변분한다.

실무에서 걸리는 것 두 가지만 짚는다.

  • 변환이 항상 되는 게 아니다. 2L/q˙iq˙j\partial^2 L/\partial\dot q_i\partial\dot q_j 가 특이하면 q˙\dot qpp 로 풀 수 없고(특이 라그랑지언), 이때는 디랙의 구속 해밀턴 형식이 필요하다. 게이지 이론이 전부 이 경우다. 일반적인 기계계에서는 이 헤시안이 곧 질량행렬이라 양정치이므로 걱정할 일이 없다.
  • H=T+VH = T+V 는 조건부다. 구속과 좌표 변환이 시간에 무관(스클레로노믹)하고 VV 가 속도에 무관할 때만 해밀토니안이 총 에너지와 같다. 회전 좌표계에서 HH 를 계산하면 총 에너지가 아니라 야코비 적분(제한 삼체문제의 그 상수)이 나온다.

위상공간으로 넘어가는 이 한 걸음이 왜 중요한가 하면, 1계 형식이라야 심플렉틱 구조가 눈에 보이고 그래야 적분기를 그 구조에 맞춰 설계할 수 있기 때문이다. 심플렉틱 적분기 문서가 그 이야기다.

8. 킬포인트 — 이산 작용을 정류화하면 적분기가 나온다[편집]

이 문서의 진짜 결론이다. 지금까지는 연속 작용을 변분해 미분방정식을 얻고, 그것을 아무 룽게-쿠타에 넣는 순서를 상정했다. 순서를 바꿔 보자. 작용적분을 먼저 시간 격자 위에서 이산화해

Sd=kLd(qk,qk+1),Ld(qk,qk+1)tktk+1LdtS_d = \sum_{k} L_d(q_k, q_{k+1}), \qquad L_d(q_k,q_{k+1}) \approx \int_{t_k}^{t_{k+1}} L\,dt

로 만든 뒤, 이 유한합을 내부 절점 qkq_k 에 대해 정류화하면 이산 오일러-라그랑주 식이 나온다. 이게 변분 적분기다.

무엇이 달라지는가. 연속 원리가 가지고 있던 두 구조 — 심플렉틱성과 대칭에 따른 보존량 — 가 이산 단계에서도 정확히(기계정밀도로) 유지된다. 이산 뇌터 정리가 그것을 보장한다. 에너지는 정확히 보존되지 않지만 표류하지 않고 유계로 진동하는데, 이는 적분기가 원래 해밀토니안에 가까운 그림자 해밀토니안을 정확히 보존하기 때문이다. 그리고 구속이 있으면 승수도 이산 원리 안에서 자연스럽게 나오므로, 위에서 이야기한 DAE 표류 문제도 훨씬 얌전해진다.

가장 유명한 사례가 허탈할 정도로 단순하다. LdL_d 를 사다리꼴 구적으로 잡으면 그 결과가 정확히 **베를레 적분**이다. 게임 엔진과 분자동역학이 “빠르고 잘 되니까” 수십 년째 써 온 세 줄짜리 적분기가, 알고 보면 해밀턴 원리를 이산 단계에서 그대로 지킨 물건이었던 것. 요약하면 이렇다 — 해밀턴 원리는 물리를 기술하는 언어이면서 동시에 적분기를 설계하는 레시피다.

9. 관련 문서[편집]

10. Footnotes[편집]

  1. 관성행렬 M(q)M(q) 를 계량 텐서로 보면 CC 항의 계수가 정확히 그 계량의 크리스토펠 기호다. 즉 **로봇 팔의 자유 운동은 배치공간 위의 측지선**이다. 제어 논문에서 ”M˙2C\dot M - 2C 가 반대칭”이라는 성질을 리아푸노프 함수 만드는 데 써먹는데, 그 성질의 정체도 계량 양립성이다. 기하가 공짜로 제어기를 설계해 주는 드문 사례.

  2. Bloch 등의 비홀로노믹 역학 문헌에서 반복해서 강조되는 지점이다. 바코노믹 방정식도 수학적으로 멀쩡하고 최적제어 문제의 해로서는 의미가 있지만, 굴러가는 동전이 실제로 그리는 궤적은 라그랑주-달랑베르 쪽이다. “변분 원리가 물리의 근본이니 변분으로 푼 게 맞겠지”라고 우기다 실험과 안 맞는 것이 이 함정의 전형적 결말.

  3. 레일리 감쇠는 저주파와 고주파 두 모드에서만 감쇠비를 맞추고 나머지는 알아서 정해지는데, 그 “알아서”가 종종 고주파를 과도하게 죽인다. 명시적 동해석에서는 그게 오히려 수치 잡음을 잡아 줘서 사람들이 조용히 좋아한다. 이 바닥에서 물리적 근거와 실무적 편의가 충돌하면 대개 편의가 이긴다.