일반화 좌표: 위치를 적는 숫자는 골라 쓴다
지금까지 q는 공의 높이처럼 직교 좌표(x, y, z처럼 서로 수직인 축을 따라 잰 보통의 좌표)로 잰 위치였다. 그런데 실제로 움직임을 풀어야 하는 물체는 끈에 매달린 추, 레일 위의 수레, 축에 꽂혀 도는 바퀴처럼 움직일 수 있는 길이 미리 묶여 있는 경우가 많고, 그때마다 직교 좌표로 적으면 그 묶임을 조건으로 따로 달아야 한다. 오일러–라그랑주 방정식을 이끌어 낼 때 q가 직교 좌표라는 사실은 한 번도 쓰지 않았다. 그렇다면 위치를 다른 숫자로 적어도 되지 않을까?
진자
직교 좌표가 불편해지는 가장 간단한 물체는 진자다. 추의 위치를 x, y 둘로 적으면 「끈의 길이가 일정하다」는 조건이 늘 따라붙기 때문이다. 길이 l인 끈에 매달린 질량 m의 움직임을 생각해 보자. 추는 끈 때문에 원 위에서만 움직이므로, 끈이 수직과 이루는 각 θ 하나로 위치를 나타낼 수 있다.
이처럼 물체의 위치를 정하는 숫자라면 무엇이든 q로 쓸 수 있고, 직교 좌표일 필요는 없다. 이런 q를 일반화 좌표 (위치를 정하는 숫자 묶음, generalized coordinates)라 하고, 그 시간 미분 q̇을 일반화 속도라 한다. 여기서 「일반화」는 ML의 일반화 성능과는 무관하게, 직교 좌표를 넓혔다는 뜻이다.
계(따로 떼어 놓고 살피는 대상)의 배치, 곧 계를 이루는 것 하나하나가 어디에 어떻게 놓였는지 적은 숫자 목록을 정하는 숫자가 일반화 좌표이고, 그 숫자의 개수를 계의 자유도라 한다. 책상 위 컵이라면 위치 3개와 기울기 각도(오일러 각) 3개로 자유도가 여섯이고, 진자는 각도 θ 하나로 자유도가 하나다.

진자에서 추의 속력은 lθ̇이고 높이는 −l cos θ이다. 운동에너지는 늘 실제 공간의 속력으로 적은 뒤 새 좌표로 바꾼다. 그러면 라그랑지안은 다음과 같다.
라그랑지안 방식의 장점은 이렇게 좌표를 자유롭게 고를 수 있다는 데 있다. 위 L에는 끈의 장력(끈이 추를 잡아당기는 힘)이 어디에도 나오지 않는다. 끈의 역할은 "θ 하나만으로 위치가 정해진다"는 좌표 선택 안에 이미 들어 있기 때문이다. 반면 힘을 그리는 뉴턴 방식에서는 장력을 미지수로 두고 연립방정식을 풀어야 한다. 그러므로 로봇 팔이나 이중 진자처럼 좌표가 복잡한 계일수록 라그랑지안 방식이 유리하다. 이 L에서 운동방정식을 얻는 일은 아래 문제 8에서 해 보자.
진자의 점수
진자에서도 점수를 직접 계산해 보자. 길이 1m, 질량 1kg인 진자가 가장 낮은 곳(θ = 0)에서 출발해 0.5초 뒤 θ = 0.5 rad(약 29°)에 도착한다고 하자. 양 끝은 고정하고, 그 사이에 각도가 어떻게 변하는지만 바꿔 네 경로를 비교한다. 점수는 매 순간의 (운동에너지 − 위치에너지)를 0.5초 동안 더한 값이다. 위치에너지는 가장 낮은 곳을 0으로 잰다. 기준을 바꾸면 모든 경로의 점수가 같은 양만큼 바뀌므로 비교 결과는 같다.
| 경로 | 운동에너지 합 (J·s) | 위치에너지 합 (J·s) | 점수 (J·s) |
|---|---|---|---|
| 실제 운동: 1.55 rad/s로 출발해 꼭대기에서 거의 멈춤 | 0.304 | 0.297 | 0.007 |
| 2 rad/s로 출발해 일정하게 느려짐 | 0.333 | 0.322 | 0.012 |
| 일정한 각속도 1 rad/s | 0.250 | 0.202 | 0.048 |
| 정지에서 출발해 점점 빨라짐 | 0.333 | 0.121 | 0.212 |
실제 운동의 점수가 가장 작다. 점수를 작게 하려면 위치에너지가 큰 높은 곳에 오래 머물고, 운동에너지가 큰 빠른 구간은 짧게 지나야 한다. 실제 진자는 바닥에서 빠르게 출발해 올라갈수록 느려지므로 높은 곳에서 시간을 많이 쓴다. 반대로 점점 빨라지는 경로는 낮은 곳에서 시간을 보내고(위치에너지 합 0.121) 마지막에 속도를 몰아 쓴다. 그래서 점수가 약 30배 크다.
ML에서: 두 가지 “라그랑지안”
ML 논문에서 "라그랑지안"이라는 말을 만나면, 그것은 대개 제약 최적화의 라그랑지안이다. 둘은 이름만 같을 뿐 다른 개념이므로, 나란히 놓고 비교해 두자.
| 역학의 라그랑지안 | 제약 최적화의 라그랑지안 | |
|---|---|---|
| 식 | L(q, q̇) = K − U | ℒ(x, λ) = f(x) + λ g(x) |
| 무엇을 하는가 | 적분해서 경로 점수를 만든다 | 제약 g(x) = 0을 목적 함수에 합친다 |
| 푸는 방법 | 경로에 대한 기울기 = 0 | x와 λ에 대한 기울기 = 0 |
| ML 예 | Lagrangian NN(신경망으로 L을 배워 운동을 예측) | 제약이 있는 강화학습(보상은 키우되 사고 같은 비용은 한도 안에 두기) |
그렇다고 둘이 전혀 무관한 것은 아니다. 둘 다 라그랑주의 이름이 붙어 있고, "합쳐서 만든 함수의 기울기가 0인 점을 찾는다"는 점도 같다. 실제로 진자의 끈처럼 제약이 있는 역학 문제를 직교 좌표로 풀면 두 라그랑지안이 함께 나오는데, 이때 제약의 라그랑주 승수 λ가 바로 끈의 장력이 된다.
문제 8. 진자의 운동방정식과 크게 흔들 때의 주기
본문의 진자 라그랑지안 L = ½ml²θ̇² + mgl cos θ에서 운동방정식을 구하라. 각도가 작으면 sin θ ≈ θ로 두어 주기가 2π√(l/g)가 된다. 길이 1m인 진자를 수직에서 90°(π/2 rad) 들어 올렸다가 놓아도 주기가 이 값과 같은가?

∂L/∂θ̇ = ml²θ̇이니까 왼쪽은 ml²θ̈. 오른쪽은 cos θ를 미분해서 mgl sin θ. 그럼 θ̈ = (g/l) sin θ.

θ가 조금 양수일 때 그 식대로면 추는 어느 쪽으로 가속하죠?

θ̈이 양수라서 θ가 더 커지는 쪽이에요. 추가 바닥으로 돌아오지 않고 점점 더 밀려 올라가요. 거꾸로 세운 막대처럼요.

cos θ를 미분하면 −sin θ죠. 부호를 놓쳤어요. ml²θ̈ = −mgl sin θ, θ̈ = −(g/l) sin θ.

양변의 단위를 비교해 봐요. θ는 단위가 없고 l은 미터예요.

왼쪽 ml²θ̈은 kg·m²/s², 오른쪽 mgl sin θ도 kg·m/s² × m라서 같아요. 운동에너지를 ½m(lθ̇)²으로 적었으니 l²이 제대로 들어간 거고요.

일반화 좌표를 쓸 때 가장 흔한 실수가 추의 속력 자리에 각속도를 그대로 넣는 거예요. K는 항상 실제 공간의 속력으로 적고 나서 새 좌표로 바꿔야 해요. 이제 민준 학생, 장력은 어디 갔죠?

한 번도 안 나왔네요. θ를 고른 순간 끈 길이는 이미 지켜진 거고요. 로봇 팔 같은 걸 풀 때 관절 각도로 쓰는 이유가 이거군요.

이제 주기요. 각도가 작으면 θ̈ = −(g/l)θ라서 주기가 2π√(l/g), 1m면 2.0초예요. 진자는 크게 흔들든 작게 흔들든 주기가 같다고 배웠으니까 90°에서 놓아도 2.0초겠네요.

sin(π/2)와 π/2를 견줘 볼까요?

1과 1.57이요. 끝에서는 근사식이 되돌리는 힘을 1.57배로 부풀리고 있었네요. 실제로는 덜 세게 당기니까 더 천천히 돌아오고, 주기가 길어지겠어요.

코드로 돌려 보니 2.37초예요. 18% 길어요. 45°에서 놓으면 2.09초라 4%쯤이고요.

주기가 흔드는 크기와 상관없다는 건 sin θ ≈ θ가 맞는 작은 흔들림에서만이에요.

테일러 전개의 첫 항만 믿고 0에서 먼 곳에 쓴 거네요. 근사를 쓸 때는 어디까지 믿을 수 있는지부터 봐야겠어요.