서문
“거의 모든 교과서에서는, 아무리 좋은 교과서라도, 이 원리가 이해하는 것이 불가능하도록 제시된다.” (K. Jacobi, Lectures on Dynamics, 1842-1843). 나는 전통과 결별하기로 선택하지 않았다.
- Arnold, Mathematical Methods of Classical Mechanics
단순하게 설명할 수 없다면, 그것을 충분히 잘 이해하지 못한 것이다.
Albert Einstein
최근 몇 년 동안 고전역학에 대한 관심이 놀랄 만큼 되살아났다. 이제 우리는 고전역학에 이전에 의심했던 것보다 훨씬 더 많은 것이 있음을 안다. 고전계의 거동은 놀랄 만큼 풍부하다. 전통적인 역학 제시가 초점을 맞추는 운동방정식의 유도는 시작일 뿐이다. 고전계는 비선형 공명, 혼돈 거동, 혼돈으로의 전이와 같은 복잡한 현상들의 배열을 보인다.
전통적인 역학 취급은 기호적으로 다룰 수 있는 극히 작은 부류의 동역학계에 대부분의 노력을 집중한다. 우리는 기호해를 갖는지 여부와 관계없이 계의 거동을 연구하는 일반적인 방법을 개발하는 데 집중한다. 전형적인 계는 풀 수 있는 계와 질적으로 다른, 놀랄 만큼 복잡한 거동을 보인다. 우리는 운동 현상에 초점을 맞추며, 이 운동을 탐색하기 위해 컴퓨터 시뮬레이션을 광범위하게 사용한다.
계가 기호적으로 다룰 수 없을 때에도 현대 동역학의 도구는 질적인 이해를 끌어낼 수 있게 해 준다. 우리는 기호적 기술에 집중하는 대신 가능한 궤적들의 집합이 지닌 기하학적 특징에 집중한다. 그러한 도구는 수치 자료나 실험 자료를 체계적으로 분석하는 토대를 제공한다.
고전역학은 기만적으로 단순하다. 오류가 있는 추론으로, 또는 진정한 이해 없이도, 옳은 답을 얻기는 놀랄 만큼 쉽다. 전통적인 수학 표기는 이 문제에 기여한다. 기호는 문맥에 따라 달라지는 모호한 뜻을 지니고, 흔히 주어진 문맥 안에서도 뜻이 바뀐다.1 예를 들어 역학의 기본 결과인 라그랑주 방정식은 전통 표기에서 다음과 같이 쓴다.
라그랑지언 L/은 위치와 속도 성분 /qi 및
의 함수로 해석되어야 편미분이 뜻을 갖는다. 그러나 시간미분 /d/dt/가 뜻을 가지려면, 라그랑지언의 편미분에 해 경로가 삽입되어 시간의 함수가 되어야 한다. 모호한 표기의 전통적 사용은 단순한 상황에서는 편리하지만, 더 복잡한 상황에서는 명료한 추론에 심각한 장애가 될 수 있다. 추론이 명료하고 모호하지 않게 되도록 우리는 더 정밀한 수학 표기를 채택했다. 우리의 표기는 함수적이며 현대 수학 제시의 표기를 따른다.2 우리의 함수 표기에 대한 소개는 부록에 있다.
계산도 역학의 수학적 아이디어를 제시하는 데 들어온다. 우리는 수학 표기가 컴퓨터에 의해 해석될 수 있을 만큼 명시적이고 정밀해야 한다고 요구한다. 이 요구의 결과로 본문에 나타나는 공식과 방정식은 스스로 서 있다. 그것들은 비형식적 문맥과 독립적으로 명확한 의미를 지닌다. 예를 들어 우리는 라그랑주 방정식을 함수 표기로 다음과 같이 쓴다:3
D/(∂2/L ∘ Γ[/q/]) − ∂1/L/ ∘ Γ[/q/] = 0.
라그랑지언 L/은 시간 /t, 좌표 x, 속도 v/의 실숫값 함수이며, 그 값은 /L/(/t, x, v)이다. 편미분은 특정 인수 위치에 관해 함수를 미분한 것으로 표시한다. ∂2/L/은 라그랑지언 함수 /L/을 속도 인수 위치에 관해 편미분하여 얻은 함수를 나타낸다. “변수”에 관한 미분을 쓰는 전통적 편미분 표기는 문맥에 의존하므로 모호함으로 이어질 수 있다.4 그런 다음 라그랑지언의 편미분을 경로 함수 /q/를 따라 명시적으로 평가한다. 시간미분을 취하고 라그랑주 방정식을 만든다. 각각의 단계는 명시적이며 암묵적인 대입은 없다.
계산 알고리듬은 동역학 현상을 분석하는 데 쓰이는 방법들 일부를 정밀하게 전달하는 데 사용된다. 변분역학의 방법을 컴퓨터 언어로 표현하면 그 방법은 모호하지 않고 계산적으로 유효해야 한다. 계산은 역학적·기하학적 개념을 계산 객체로 표현하는 방식에 정밀함을 요구하고, 그러한 객체를 조작하는 알고리듬을 명시적으로 나타낼 수 있게 한다. 또한 절차로 형식화되면 수학적 아이디어는 결과를 직접 계산하는 데 쓸 수 있는 도구가 된다.
학생의 능동적 탐구는 학습 경험의 본질적 부분이다. 우리는 계의 운동을 이해하는 데 초점을 둔다. 운동을 배우려면 학생은 시뮬레이션과 실험을 통해 계의 운동을 능동적으로 탐구해야 한다. 연습문제와 프로젝트는 제시의 필수 부분이다.
수학이 자동으로 해석될 만큼 정밀하다는 사실은 능동적 탐구를 수학 자체까지 확장하게 한다. 컴퓨터가 어떤 표현식이든 해석할 수 있어야 한다는 요구는 그 표현식이 올바르게 구성되었는지에 대해 엄격하고 즉각적인 피드백을 제공한다. 경험은 이 방식으로 컴퓨터와 상호작용하면 이해의 많은 결함이 드러나고 교정됨을 보여 준다.
이 책에서 우리는 MIT의 입문 컴퓨터과학 과목에서도 사용하는 Lisp 계열 프로그래밍 언어의 한 방언인 Scheme으로 계산 방법을 표현한다. Scheme에 대한 좋은 해설서는 많다. 우리는 부록에서 Scheme에 대한 짧은 소개를 제공한다.
입문 컴퓨터과학 수업에서도 우리는 언어를 결코 형식적으로 가르치지 않는다. 그럴 필요가 없기 때문이다. 우리는 그냥 그것을 쓰고, 학생들은 며칠 안에 익힌다. 이것이 Lisp 같은 언어의 큰 장점 하나다. 그런 언어에는 복합 표현식을 만드는 방식이 극히 적고, 구문 구조는 거의 없다. 체스 규칙처럼 모든 형식적 성질을 한 시간 안에 다룰 수 있다. 짧은 시간이 지나면 우리는 구문 세부 사항(그런 것이 없으므로)을 잊고, 무엇을 계산하고 싶은지를 알아내는 진짜 문제로 나아간다.
고전역학을 설명할 때 Scheme이 다른 언어보다 유리한 점은 수학 함수를 구현하는 절차의 조작이 다른 컴퓨터 언어보다 Scheme에서 더 쉽고 자연스럽기 때문이다. 실제로 역학의 많은 정리는 Scheme 프로그램으로 직접 표현할 수 있다.
이 책에서 사용하는 Scheme의 판본은 MIT/GNU Scheme이며, 기호 표현식을 포함한 다양한 수학 객체에 대해 Scheme 연산자가 일반화되도록 확장하는 Scmutils라는 대형 소프트웨어 라이브러리를 덧붙였다. Scmutils 라이브러리는 또한 구적법, 미분방정식 계의 적분, 다변수 최소화처럼 이 책에서 사용하는 수치 방법을 지원한다.
Scmutils 라이브러리로 확장된 Scheme 시스템은 자유 소프트웨어다. 우리는 GNU/Linux 운영체제와 함께 사용할 수 있는 형태로 문서와 소스 코드를 갖춘 이 시스템을 인터넷의 mitpress.mit.edu/classical mech에서 제공한다.
이 책은 특이한 관점에서 고전역학을 제시한다. 운동방정식을 유도하는 대신 운동을 이해하는 데 초점을 맞춘다. 비선형 동역학의 최근 발견을 사후적인 첨가물로 제시하지 않고, 제시 전반에 엮어 넣는다. 고전역학의 근본 성질을 정밀하게 이해할 수 있는 함수적 수학 표기를 사용한다. 계산을 사용하여 표기를 제약하고, 방법을 포착하고 형식화하며, 시뮬레이션과 기호 해석을 수행한다.
이 책은 MIT에서 고전역학을 가르친 결과다. 우리의 수업 내용은 Wisdom이 진행한 비선형 동역학 및 태양계 동역학 수업의 아이디어와, Abelson과 Sussman이 입문 컴퓨터과학 수업에서 개발한 계산을 방법론 정식화에 사용할 수 있는 방식에 관한 아이디어에서 출발했다. 처음 시작했을 때 우리는 이 접근법을 사용해 역학을 정식화하는 일이 쉬울 것이라 기대했다. 우리는 우리가 이해한다고 생각했던 많은 것을 사실은 이해하지 못했음을 곧 배웠다. 수학 표기가 컴퓨터에 의해 해석될 수 있을 만큼 명시적이고 정밀해야 한다는 우리의 요구는 말장난과 추론의 결함을 드러내는 데 매우 효과적이다. 수학을 정밀하면서도 명료하고 계산적으로 유효하게 만들기 위한 그 결과의 고투는 우리가 예상한 것보다 훨씬 오래 지속되었다. 이 과정으로 우리는 역학과 계산 모두에 관해 많이 배웠다. 우리는 다른 사람들, 특히 우리의 경쟁자들이 이해를 높이는 동시에 연구를 늦추는 이 방법들을 채택하기를 바란다.
제2판
이 텍스트를 사용하여 MIT에서 고전역학을 가르친 것은 초판이 출간된 뒤부터 매년 계속되었다. 우리는 학생들이 이 자료에서 어떤 어려움을 겪는지에 관해 많이 배웠다. 설명 일부는 개선이 필요함을 알게 되었다. 이 판은 우리의 새 이해의 결과다.
수년에 걸쳐 우리의 소프트웨어 지원은 크게 향상되었고, 우리는 그 지원을 활용하여 초판에서 제시할 수 있었던 것보다 더 일반적인 대수적 증명을 제공했다. 이 이점은 새 판 대부분에 스며들어 있다.
이제 첫 장에서는 작용의 좌표 독립성의 중요성을 훼손하지 않으면서 작용의 좌표 표현으로 더 직접 나아간다. 또한 초판의 더 형식적인 유도를 보완하여, 정지 작용 원리로부터 오일러–라그랑주 방정식을 간단히 유도하는 내용을 추가했다.
강체 운동 장에서는 각속도 벡터의 존재에 대한 대수적 유도를 제공한다. 우리의 새 유도는 기준 방향에서 실제 방향으로의 변환을 매개변수화한 것으로서 강체의 일반화 좌표를 전개하는 방식과 조화를 이룬다. 또한 강체 운동 분석에서 특이점을 피하는 방법으로 사원수에 관한 새 절도 제공한다.
정준 변환은 위상공간 좌표의 변환과, 궤적 사이의 일대일 대응을 유지하는 해밀토니언의 연관 변환이다. 우리는 시간 의존 계와 변환을 허용하며, 이는 정준 변환의 취급을 복잡하게 만든다. 정준 변환 장은 정준 변환과 심플렉틱 변환의 관계를 명료하게 하기 위해 광범위하게 고쳤다. Lie 변환을 포함하여 진화에서 생기는 정준 변환의 취급은 새 장으로 분리했다.
우리는 곳곳에서 무수한 작은 실수를 고쳤다. 제거한 것보다 더 많은 실수를 새로 넣지 않았기를 바란다.
__
1수학 교육학에 관한 그의 책에서 [17], Hans Freudenthal은 f/(/x)와 df/(/x)//dx/ 같은 표현에서 모호하고 명시되지 않은 표기 관례에 의존하는 것이 수학, 특히 입문 미적분학을 초심자에게 극도로 혼란스럽게 만든다고 논한다. 그리고 수학 교육자들에게 더 형식적인 현대 표기를 사용할 것을 권한다.
2그의 아름다운 책 Calculus on Manifolds [40], 에서 Michael Spivak은 함수 표기를 사용한다. 그는 p. 44에서 고전 표기의 문제 몇 가지를 논한다. 우리는 특히 흥미로운 한 구절을 발췌한다:
[연쇄법칙]을 고전 표기로 진술하는 것만으로도 무관한 문자들을 도입해야 한다. D/1(/f ∘ (g, h))의 통상적인 평가는 다음과 같이 진행된다.
f/(/u, v)가 함수이고 u = g/(/x, y)이고 v = h/(/x, y)이면
[기호 ∂/u//∂/x/는 ∂///∂/x g/(x, y)를 뜻하고, ∂///∂/u f/(u, v)는 D/1/f/(/u, v) = D/1/f/(/g/(/x, y), h/(/x, y))를 뜻한다.] 이 방정식은 흔히 간단히 다음처럼 쓴다.
양변에서 /f/는 서로 다른 것을 뜻한다는 점에 유의하라!
3이는 표기의 느낌을 주기 위해 설명 없이 여기 제시했다. 본문에서 충분한 설명을 제공한다.
4“심지어 표기조차 모호한 편미분 장치를 사용하는 것이 필요하다.” V.I. Arnold, Mathematical Methods of Classical Mechanics [5], Section 47, p. 258. 그 페이지의 각주도 보라.