Selective physics applications of Mathematica

Slides:



Advertisements
Similar presentations
1 핵 · 입자물리 계산과학 조기현 2015 계산과학연구 워크샵. 세계 수준의 초고성능 컴퓨팅 활용 우수한 과학적 성과 R&D 파트너 수행 계산과학 분야 실험 - 이론 - 시뮬레이션 융합 연구 Beyond Discovery 행복한 사회 R&D 파트너.
Advertisements

지적기초측량 경일대학교/부동산지적학과.
Chapter 7 Many-Electron Atoms
의료 IT 공학과 조용석 교수 Reverse Engineering Introduction Reverse Engineering #2.
Chapter 9. Magnetic Forces, Materials, and Inductance
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Sources of the Magnetic Field
Mathematics for Computer Graphics
Chapter 7 ARP and RARP.
스테레오 비젼을 위한 3장 영상의 효율적인 영상정렬 기법
6.9 Redundant Structures and the Unit Load Method
Chaper 2 ~ chaper 3 허승현 제어시스템 설계.
4. Matlab-Simulink를 이용한 메카니즘 해석
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
7장 : 캐시와 메모리.
Chapter 10 네트워크 보안.
Final Examination, 2008 Fluid Mechanics
Introduction.
III. Problems of Second Chapter (Fluid Statics)
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
Ch. 5 : Analog Transmission
정법동 열수력 중대사고 안전연구부 한국원자력연구원
Dynamic Programming.
Internet Computing KUT Youn-Hee Han
재귀 혹은 귀납 Recursive or Inductive Definition 집합을 정의하는 방법
1 도시차원의 쇠퇴실태와 경향 Trends and Features of Urban Decline in Korea
Chapter 2. Finite Automata Exercises
Discrete Math II Howon Kim
5. 비제약 최적설계의 수치해법 (Numerical Methods for Unconstrained Optimum Design)
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
계수와 응용 (Counting and Its Applications)
KMS 구현 및 활용사례 경쟁력 강화를 위한 2002년 5월 28일(화) 김 연 홍 상무 / 기술사
자동제어 영남대학교 기계공학부 정 병 묵.
Team no.13 Tech TonicS.
Equilibrium of a Particle
듣기 퀴즈.
Parallel software Lab. 박 창 규
PCA Lecture 9 주성분 분석 (PCA)
Structural Dynamics & Vibration Control Lab., KAIST
Mathematical Description of Continuous-Time Signals
Introduction to Programming Language
Tae-Young Park1, Rae-Jun Park2 Sang-Suk Lee1
Discrete Math II Howon Kim
Dynamic Programming.
2차원 절삭역학 [1] 절삭저항과 전단각 The mechanics of chip formation
2차원 절삭역학 [1] 절삭저항과 전단각 The mechanics of chip formation
CHAPTER 11. Rotation 병진 운동과 회전 운동 일과 회전 운동 에너지 회전 변수 각 관련 성분은 벡터인가?
시스템 분석 및 설계 글로컬 IT 학과 김정기.
Operating System Multiple Access Chatting Program using Multithread
Optimal placement of MR dampers
CHAPTER 10. 충돌 (Collisions)
Chapter 4.1 종관기상학 2013년도 1학기.
Internet Computing KUT Youn-Hee Han
Two-Particle Problem 좌표변환 2개 이상의 입자 입자들 중심(Center of mass)의 병진운동 &
점화와 응용 (Recurrence and Its Applications)
자동제어공학 4. 과도 응답 정 우 용.
이산수학(Discrete Mathematics)
Ch1-Phasors (페이저) 페이저: 정현파 파동을 표현하기 위한 복소수
CH.5 The Second Law of Thermodynamics
데이터 베이스의 내부 구조.
8.회전 운동 © 2014 Pearson Education, Inc..
Final Examination, 2008 Fluid Mechanics Professor Joon Hyun Kim
Ch1-Phasors (페이저) 페이저: 정현파 파동을 표현하기 위한 복소수
Hongik Univ. Software Engineering Laboratory Jin Hyub Lee
제10장. Other Models of TM’s 학습목표
질량중심을 원점으로 잡은 좌표계에서는 예를 들어 중력으로 잡아당기는 두 입자에 대해.
경사 식각을 이용한 폴리머 광 스위치 2층 배선 기술
Chapter 4. Energy and Potential
Sawasdee ka.
Presentation transcript:

Selective physics applications of Mathematica 이정일 in collaboration with 김유래, 이준학 고려대학교 2015 수학 소프트웨어 여름캠프 (Mathematical Software Summer Camp) 2015년 8월 22일

Part I Mathematica의 패턴매칭을 활용한 Symbolic 계산

Schoonschip (1963, Veltman) Symbolic Computing의 시작 Electro-weak theory가 재 규격화 가능함을 증명, 1999년 노벨 물리학상 읽을 거리(천공 카드를 사용하던 시절) 사진출처: http://www.nobelprize.org/nobel_prizes/physics/laureates/1999/veltman-facts.html

REDUCE(1968, Hearn) LISP로 짜여진 Symbolic Program Free software Now 사용자 친화적 읽을 거리 (REDUCE 40년 역사)

FORM(1984, Vermaseren) Best Symbolic Program Ever! Free software Schoonschip의 C 버전 컴파일하여 실행 Memory사용의 효율성 사용자 비 친화적

Dirac Gamma Matrix Dirac Gamma Matrix는 상대론적으로 운동하는 전자의 스핀상태의 변화 기술하는 데 필수적인 행렬이다. Clifford Algebra를 만족한다. 전자와 빛의 상호작용을 perturbative하게 기술할 때 수 많은 Gamma Matrix의 곱의 Trace를 계산해야 한다.

Dirac Gamma Matrix Algebra 𝛾 𝜇 𝛾 𝜈 + 𝛾 𝜈 𝛾 𝜇 =2 𝑔 𝜇𝜈 1 𝑔 𝜇𝜈 =diag(1,−1,−1,−1). 𝛾 0 = 1 0 0 −1 , 𝛾 𝑖 = 0 𝜎 𝑖 −𝜎 𝑖 0 𝜎 𝑖 는 Pauli sigma matrix 𝜎 1 = 0 1 1 0 , 𝜎 2 = 0 −𝑖 𝑖 0 , 𝜎 3 = 1 0 0 −1 .

REDUCE 계산 예 오른쪽 프로그램 결과물은 Dirac gamma matrix 곱의 trace를 계산한 예이다. REDUCE 3.7, 15-Jan-99 patched to 25-Sep-2003 ... 1: vector p1,p2,p3,p4,p5,p6,p7,p8; 2: off nat; 3: g(l,p1,p2,p3,p4,p5,p6,p7,p8); p1.p2*p3.p4*p5.p6*p7.p8 - p1.p2*p3.p4*p5.p7*p6.p8 + p1 .p2*p3.p4*p5.p8*p6.p7 - p1.p2*p3.p5*p4.p6*p7.p8 + p1. p2*p3.p5*p4.p7*p6.p8 - p1.p2*p3.p5*p4.p8*p6.p7 + p1.p2 *p3.p6*p4.p5*p7.p8 - p1.p2*p3.p6*p4.p7*p5.p8 + p1.p2* p3.p6*p4.p8*p5.p7 - p1.p2*p3.p7*p4.p5*p6.p8 + p1.p2*p3 .p7*p4.p6*p5.p8 - p1.p2*p3.p7*p4.p8*p5.p6 + p1.p2*p3. p8*p4.p5*p6.p7 - p1.p2*p3.p8*p4.p6*p5.p7 + p1.p2*p3.p8 *p4.p7*p5.p6 - p1.p3*p2.p4*p5.p6*p7.p8 + p1.p3*p2.p4* p5.p7*p6.p8 - p1.p3*p2.p4*p5.p8*p6.p7 + p1.p3*p2.p5*p4 .p6*p7.p8 - p1.p3*p2.p5*p4.p7*p6.p8 + p1.p3*p2.p5*p4. p8*p6.p7 - p1.p3*p2.p6*p4.p5*p7.p8 + p1.p3*p2.p6*p4.p7 *p5.p8 - p1.p3*p2.p6*p4.p8*p5.p7 + p1.p3*p2.p7*p4.p5* p6.p8 - p1.p3*p2.p7*p4.p6*p5.p8 + p1.p3*p2.p7*p4.p8*p5 .p6 - p1.p3*p2.p8*p4.p5*p6.p7 + p1.p3*p2.p8*p4.p6*p5. p7 - p1.p3*p2.p8*p4.p7*p5.p6 + p1.p4*p2.p3*p5.p6*p7.p8 - p1.p4*p2.p3*p5.p7*p6.p8 + p1.p4*p2.p3*p5.p8*p6.p7 - p1.p4*p2.p5*p3.p6*p7.p8 + p1.p4*p2.p5*p3.p7*p6.p8 - p1.p4*p2.p5*p3.p8*p6.p7 + p1.p4*p2.p6*p3.p5*p7.p8 - p1 .p4*p2.p6*p3.p7*p5.p8 + p1.p4*p2.p6*p3.p8*p5.p7 - p1. p4*p2.p7*p3.p5*p6.p8 + p1.p4*p2.p7*p3.p6*p5.p8 - p1.p4 *p2.p7*p3.p8*p5.p6 + p1.p4*p2.p8*p3.p5*p6.p7 - p1.p4* p2.p8*p3.p6*p5.p7 + p1.p4*p2.p8*p3.p7*p5.p6 - p1.p5*p2 .p3*p4.p6*p7.p8 + p1.p5*p2.p3*p4.p7*p6.p8 - p1.p5*p2. p3*p4.p8*p6.p7 + p1.p5*p2.p4*p3.p6*p7.p8 - p1.p5*p2.p4 *p3.p7*p6.p8 + p1.p5*p2.p4*p3.p8*p6.p7 - p1.p5*p2.p6* p3.p4*p7.p8 + p1.p5*p2.p6*p3.p7*p4.p8 - p1.p5*p2.p6*p3 .p8*p4.p7 + p1.p5*p2.p7*p3.p4*p6.p8 - p1.p5*p2.p7*p3. p6*p4.p8 + p1.p5*p2.p7*p3.p8*p4.p6 - p1.p5*p2.p8*p3.p4 *p6.p7 + p1.p5*p2.p8*p3.p6*p4.p7 - p1.p5*p2.p8*p3.p7* p4.p6 + p1.p6*p2.p3*p4.p5*p7.p8 - p1.p6*p2.p3*p4.p7*p5 .p8 + p1.p6*p2.p3*p4.p8*p5.p7 - p1.p6*p2.p4*p3.p5*p7. p8 + p1.p6*p2.p4*p3.p7*p5.p8 - p1.p6*p2.p4*p3.p8*p5.p7 + p1.p6*p2.p5*p3.p4*p7.p8 - p1.p6*p2.p5*p3.p7*p4.p8 + p1.p6*p2.p5*p3.p8*p4.p7 - p1.p6*p2.p7*p3.p4*p5.p8 + p1.p6*p2.p7*p3.p5*p4.p8 - p1.p6*p2.p7*p3.p8*p4.p5 + p1 .p6*p2.p8*p3.p4*p5.p7 - p1.p6*p2.p8*p3.p5*p4.p7 + p1. p6*p2.p8*p3.p7*p4.p5 - p1.p7*p2.p3*p4.p5*p6.p8 + p1.p7 *p2.p3*p4.p6*p5.p8 - p1.p7*p2.p3*p4.p8*p5.p6 + p1.p7* p2.p4*p3.p5*p6.p8 - p1.p7*p2.p4*p3.p6*p5.p8 + p1.p7*p2 .p4*p3.p8*p5.p6 - p1.p7*p2.p5*p3.p4*p6.p8 + p1.p7*p2. p5*p3.p6*p4.p8 - p1.p7*p2.p5*p3.p8*p4.p6 + p1.p7*p2.p6 *p3.p4*p5.p8 - p1.p7*p2.p6*p3.p5*p4.p8 + p1.p7*p2.p6* p3.p8*p4.p5 - p1.p7*p2.p8*p3.p4*p5.p6 + p1.p7*p2.p8*p3 .p5*p4.p6 - p1.p7*p2.p8*p3.p6*p4.p5 + p1.p8*p2.p3*p4. p5*p6.p7 - p1.p8*p2.p3*p4.p6*p5.p7 + p1.p8*p2.p3*p4.p7 *p5.p6 - p1.p8*p2.p4*p3.p5*p6.p7 + p1.p8*p2.p4*p3.p6* p5.p7 - p1.p8*p2.p4*p3.p7*p5.p6 + p1.p8*p2.p5*p3.p4*p6 .p7 - p1.p8*p2.p5*p3.p6*p4.p7 + p1.p8*p2.p5*p3.p7*p4. p6 - p1.p8*p2.p6*p3.p4*p5.p7 + p1.p8*p2.p6*p3.p5*p4.p7 - p1.p8*p2.p6*p3.p7*p4.p5 + p1.p8*p2.p7*p3.p4*p5.p6 - p1.p8*p2.p7*p3.p5*p4.p6 + p1.p8*p2.p7*p3.p6*p4.p5$ 4: REDUCE 계산 예 오른쪽 프로그램 결과물은 Dirac gamma matrix 곱의 trace를 계산한 예이다. Tr 𝛾 𝑝 1 𝛾 𝑝 1 ⋯ 𝛾 𝑝 8 =? 입자물리 이론에 빈번히 등장하는 방대한 양의 단순연산의 해석적 결과를 얻기 위해 Symbolic Manipulation을 개발하여 활용

Symbolic 계산의 필요성 이와 같이 입자물리이론에서는 문자형태를 정확히 유지한 채 식을 전개를 해야 하는 경우가 많음 (예: 적분, 미분, 전개, 인수분해, …) 다양한 형태의 non-Abelian algebra에 활용 Computer algebra, 혹은 symbolic manipulation이라고 불리는 방법을 통해 이러한 문자로 구성된 식으로부터 문자로 된 결과를 얻어낼 수 있음 Mathematica는 이와 같은 symbolic 계산 패키지의 일종(비쌈)

다양한 Symbolic 계산 프로그램들 Schoonschip 1963년 Veltman에 의해 처음 개발된 computer algebra system. W 보손의 quadrupole moment를 계산하기 위해 만듬 (50000개 항이 등장) FORM 1984년 Schoonschip에 기반하여 J.A.M. Vermaseren이 만든 프로그램 MACSYMA (Project MAC’s SYmbolic MAnipulator) 1968년에서 1982년까지 MIT의 Project MAC의 일환으로서 만들어진 computer algebra 프로그램 현재는 Maxima라는 프로그램으로 이어지고 있음 Symbolic Manipulation Program (SMP) 1979년부터 Wolfram의 주도하에 제작된 프로그램. Schoonschip과 MACSYMA을 참고하여 제작됨  Mathematica로 이어짐

패턴 매칭 기법 동일한 패턴을 찾아내어 원하는 규칙을 적용하는 방법 Mathematica에서는 크게 3가지 패턴이 존재 - pattern_ (밑줄 한 개) 1 개의 argument - pattern_ _ (밑줄 두 개) 1 개 혹은 그 이상의 argument - pattern_ _ _ (밑줄 세 개) 0개 혹은 그 이상의 argument

패턴별 비교 예제 다음과 같은 3가지 함수를 정의해보자. ex1[x_, y_] := x + y (y 밑줄 한 개) ex2[x_, y_ _] := x + y (y 밑줄 두 개) ex3[x_, y_ _ _] := x + y (y 밑줄 세 개) Argument에 1, (1, 2), (1, 2, 3)을 넣어 비교해보면 차이를 명확히 알 수 있다.

패턴별 비교 예제

패턴 매칭 기법을 활용한 프로그램 제작 예제 패턴매칭을 활용하여 입자물리에서 자주 등장하는 SU(𝑁) generator 𝑇 𝑎 들의 trace 연산을 해보자. 먼저 시작하기 전에 다음의 명령어를 선언한다: Clear[tr,ti,conj,d,f,delta,ss,t1,t8] Unprotect[Times,Power,Plus] Clear -> 초기화 Unprotect -> 내장 함수의 규칙은 Protect가 되어 있어서 규칙을 바꾸고 싶은 경우 Unprotect 한 뒤 규칙을 바꾸고 다시 Protect 해야함

SU(𝑁) fundamental representation generator 𝑇 𝑎 의 trace는 다음과 같은 값을 가진다: Tr 𝐼 =𝑁, Tr 𝑇 𝑎 =0, Tr 𝑇 𝑎 𝑇 𝑏 = 1 2 𝛿 𝑎𝑏 . 이 등식을 Mathematica로 쓰면 다음과 같다: tr[]=n tr[a_]:=0 tr[a_,b_]:= delta[a,b]/2

다음으로 fundamental representation에 따르면 structure constant 𝑓 𝑎𝑏𝑐 과 𝑑 𝑎𝑏𝑐 는 𝑇 𝑎 𝑇 𝑏 = 1 2𝑁 𝛿 𝑎𝑏 𝐼+ 1 2 ( 𝑑 𝑎𝑏𝑐 +𝑖 𝑓 𝑎𝑏𝑐 ) 𝑇 𝑐 이를 정리하면 𝑓 𝑎𝑏𝑐 =−2𝑖 Tr [ 𝑇 𝑎 , 𝑇 𝑏 ] 𝑇 𝑐 𝑇 𝑐 [ 𝑇 𝑎 , 𝑇 𝑏 ] 𝑇 𝑐 𝑑 𝑎𝑏𝑐 =2Tr 𝑇 𝑎 , 𝑇 b 𝑇 𝑐 𝑇 𝑎 , 𝑇 b 𝑇 𝑐

Completeness relation에 따르면 𝑇 𝑎 𝑖𝑗 𝑇 𝑎 𝑘ℓ = 1 2 − 1 𝑁 𝛿 𝑖𝑗 𝛿 𝑘ℓ + 𝛿 𝑖ℓ 𝛿 𝑗𝑘 이를 활용하면 다음의 등식을 얻을 수 있다: Tr 𝐴 𝑇 𝑎 𝐵 𝑇 𝑎 𝐶 = 1 2 Tr 𝐴𝐶 +Tr 𝐵 − 1 N Tr 𝐴𝐵𝐶 , Tr 𝐴 𝑇 𝑎 𝐵 Tr 𝐶 𝑇 𝑎 𝐷 = 1 2 Tr 𝐴𝐷𝐶𝐵 − 1 N Tr 𝐴𝐵 Tr 𝐶𝐷 , 여기서 𝐴, 𝐵, 𝐶, 𝐷는 임의의 generator이다. 이 등식을 Mathematica로 쓰면 다음과 같다: tr[x___,a_,y___,a_,z___] :=1/2*(tr[x,z]*tr[y]-1/n*tr[x,y,z]) tr[x___,a_,y___]*tr[z___,a_,w___]:=1/2*(tr[x,w,z,y]-1/n*tr[x,y]*tr[z,w]) tr[x___,a_,y___]^2 :=1/2*(tr[x,y,x,y]-1/n*tr[x,y]*tr[x,y]) 두 경우가 다른 경우로 인식됨에 주의해야 한다. (예: x*y, x^2, x^n, 1/x) Times와 Power를 Unprotect 안했다면 작동하지 않는다.

연산에 등장하는 Dirac 델타 함수에 대해 정리하면: 𝛿 𝑎𝑏 = 𝛿 𝑏𝑎 𝛿 𝑎𝑏 𝛿 𝑎𝑏 = 𝛿 𝑎𝑎 𝛿 𝑎𝑎 = 𝑁 2 −1 𝛿 𝑎𝑏 𝐹 …𝑎 … = 𝐹 …𝑏 … 𝛿 𝑎𝑏 𝐹 …𝑏 … = 𝐹 …𝑎 … 이 등식을 Mathematica로 쓰면 다음과 같다: delta[a_,b_]:=delta[b,a]/;a=!=b&&!OrderedQ[{a,b}] delta[a_,b_]^2:=delta[a,a] delta[a_,a_]:=n^2-1 delta[a_,b_]f_[x___,a_,y___]:=f[x,b,y] delta[a_,b_]f_[x___,b_,y___]:=f[x,a,y] Adjoint representation 𝑡 𝑖 𝑗𝑘 =−𝑖 𝑓 𝑖𝑗𝑘 이므로 ti[b__]:=-I*f[b]

Complex conjugate의 경우에는 index의 순서들은 반대로, 𝑖→−𝑖로 가는 변환이 된다. conj라는 함수로 정의하여 이를 만들어보면 다음과 같다: conj[a_+b_]:=conj[a]+conj[b] conj[a_*b_]:=conj[a]*conj[b] conj[a_]:=Re[a]-I*Im[a]/;FreeQ[a,tr] conj[a__ tr[b___]] := (Re[a] - I*Im[a])*conj[tr[b]] HoldPattern[conj[tr[b___]]] := Apply[tr, Reverse[{b}]] /; 조건있는 규칙 FreeQ[a,tr] -> a에서 tr이 없는지 판별식 HoldPattern -> Pattern matching에서 연산 없이 바로 우변의 식으로 보내는 함수 (옛날에는 Literal) Apply, Reverse

앞서 만들어놓은 패턴 매칭 규칙들이 누락되지 않고 작용하기 위해서는 항상 식이 factorize된 형태가 아니라 전개된 형태여야 한다. 편의를 위해서 다음과 같은 함수를 정의해볼 수 있다: ss[x_]:=Simplify[ExpandAll[x]] 이제 프로그램과 실제 결과들을 비교해보자

결과 비교 Tr 𝑇 𝑎 𝑇 𝑏 = 1 2 𝛿 𝑎𝑏 Tr 𝑇 𝑎 𝑇 𝑎 𝑇 𝑏 =0

임의의 경우로 확장하여,

Part II Various Mathematica packages for particle physicists

FeynArts The generation and visualization of Feynman diagrams and amplitudes. Roadmap of FeynArts (ex: 𝐻→𝐽/𝜓 + 𝛾 process) Load FeynArts Create the topologies Insert fields Paint the diagram

FeynArts: Results And many other diagrams…

FeynRules Implements particle physics models, which are given in the form of a list of fields, parameters, and a Lagrangian. Calculates the underlying Feynman rules and outputs them to a form appropriate for various programs such as FeynArts CalcHep Madgraph Sherpa Whizard

FeynRules: Results For example, we can input the effective Lagrangian which describes the effective coupling of 𝐻‐𝐽/𝜓‐γ to get the output appropriate for Madgraph 5. The cross section given by this Madgraph simulation agrees well with the one given in our paper. [PRD 90, 113010 (2014)]

FIRE Feynman Integral REduction: Mathematica/C++ (version 5) Automates IBP (Integrate by parts) reduction; finds the master integrals and their coefficients. We use this package to reduce the huge amount of Feynman integrals to a sum of master integrals. For example, 𝐼 𝑛 1 , 𝑛 2 ≡ 1 𝑖 𝜋 𝑑/2 ∫ 𝑑 𝑑 𝑘 1 𝐷 1 𝑛 1 𝐷 2 𝑛 2 (with 𝐷 1 ≡− 𝑘 2 + 𝑚 2 , 𝐷 2 ≡− 𝑝−𝑘 2 + 𝑚 2 ) can always be reduced to a sum of three master integrals 𝐼 1, 0 , 𝐼 0, 1 , and 𝐼 1, 1 .

Loop Integrals 𝐼 𝑛 1 , 𝑛 2 ≡ 1 𝑖 𝜋 𝑑/2 ∫ 𝑑 𝑑 𝑘 1 𝐷 1 𝑛 1 𝐷 2 𝑛 2 𝐼 𝑛 1 , 𝑛 2 ≡ 1 𝑖 𝜋 𝑑/2 ∫ 𝑑 𝑑 𝑘 1 𝐷 1 𝑛 1 𝐷 2 𝑛 2 ∫ 𝑑 𝑑 𝑘≡ −∞ +∞ 𝑑 𝑘 0 −∞ +∞ 𝑑 𝑘 1 ⋯ −∞ +∞ 𝑑 𝑘 𝑑−1 𝐷 1 ≡− 𝑘 2 + 𝑚 2 −𝑖𝜀, 𝐷 2 ≡ − 𝑝−𝑘 2 + 𝑚 2 −𝑖𝜀 𝜀→ 0 + 𝑘= 𝑘 0 , 𝑘 1 ,⋯, 𝑘 𝑑−1 , 𝑑=4−2𝜖 𝑘⋅𝑝≡ 𝑘 0 𝑝 0 − 𝑘 1 𝑝 1 −⋯− 𝑘 𝑑−1 𝑝 𝑑−1

FIRE: Results 𝐼 2, 2 = 𝑐 1 ×𝐼 0, 1 + 𝑐 2 ×𝐼 1, 0 + 𝑐 3 ×𝐼(1, 1)

Part III Generalized Newton’s Cradle: Making Animations Using Mathematica Ee and Lee, Am. J. Phys. 83, 110 (2015)

Introduction to 1D multiple collision One-dimensional elastic collisions Total kinetic energy and linear momentum are both conserved. At each collision between 𝐴/𝐵 and 𝐶, 𝑃 𝐴 or 𝐵 + 𝑃 𝐶 before collision = 𝑃 𝐴 or 𝐵 + 𝑃 𝐶 after collision From these conservation laws, we obtain recurrence relations for 𝑃 𝐴 , 𝑃 𝐵 , and 𝑃 𝐶 between 𝑛th collision and 𝑛+1 th collision. These recurrence relations are analytically solvable.

Conservation Laws 𝑀 and 𝑚: masses of 𝐴 and 𝐵 Elastic collision 𝑀 and 𝑚: masses of 𝐴 and 𝐵 𝑝 and 𝑘: momenta of 𝐴 and 𝐵 before the collision 𝑝′ and 𝑘′: momenta of 𝐴 and 𝐵 after the collision 𝑝 2 2𝑀 + 𝑘 2 2𝑚 = 𝑝 ′2 2𝑀 + 𝑘 ′2 2𝑚 𝑝+𝑘=𝑝′+𝑘′

Equivalence of the elastic collision and the rotational transformation Let us define a 2D vector as 𝛼 𝑝 𝑘 , where 𝛼≡𝑚/𝑀. From the kinetic energy conservation, we find the norm of 𝛼 𝑝 𝑘 is invariant: 𝑝 2 2𝑀 + 𝑘 2 2𝑚 = 𝑝 ′2 2𝑀 + 𝑘 ′2 2𝑚 𝑝+𝑘=𝑝′+𝑘′ ∴ There is an orthogonal transformation Λ between 𝛼 𝑝 𝑘 and 𝛼 𝑝′ 𝑘′ .

Collisions between two identical blocks In the case of the 1D collisions of three particles, the norm of the following 3-dimensional vector is invariant by the kinetic energy conservation law: 𝛼 𝑝 𝐴 𝛼 𝑝 𝐵 𝑝 𝐶 → 𝛼 𝑝 𝐴 2 +𝛼 𝑝 𝐵 2 + 𝑝 𝐶 2 =𝛼 𝑝′ 𝐴 2 +𝛼 𝑝′ 𝐵 2 + 𝑝′ 𝐶 2 =const.

3D Rotational Matrices Collision between 𝐴 and 𝐶 Rotation along the 𝒚-axis by an angle (−𝜃) + Inversion of 𝒛-component Collision between 𝐵 and 𝐶 Rotation along the 𝒙-axis by an angle 𝜃 + Inversion of 𝒛-component

Collisions between two identical blocks The recursion relation of the momenta between the 𝑛th collision of 𝐴 and 𝐶 and the next collision is along the axis 1 2+𝛼 (1, 1, 𝛼 ), by an angle 𝜓=2 tan −1 𝛼(2+𝛼) 3D rotational transformation

Velocities of the participants In the same way, we can find the analytic solutions for the blocks and the ball after each 𝑛th collision. Here, 𝑎 𝑛 and 𝑏 𝑛 are the velocities of the block 𝐴 and block 𝐵 after their 𝑛th collision with the ball, respectively. 𝑐 𝑛 and 𝑐 𝑛 ′ are the velocities of the ball after the 𝑛th collision with 𝐴 and 𝐵, respectively. With the initial conditions 𝑎 0 =𝑉, 𝑏 0 = 𝑐 0 ′ =0, we find 𝑎 𝑛 = 𝑉 CM 1+ cos 𝑛𝜓 cos 𝜓 2 , 𝑏 𝑛 = 𝑉 CM 1+ cos 𝑛+ 1 2 𝜓 cos 𝜓 2 , 𝑐 𝑛 = 𝑉 CM 1+ sin 𝑛+ 1 4 𝜓 cos 𝜓 2 , 𝑐′ 𝑛 = 𝑉 CM 1+ sin 𝑛+ 1 4 𝜓 cos 𝜓 2 .

Total number of collisions By using these analytic solutions for velocities, we can calculate the total number of collisions. We call 𝑁 𝐴 is the number of collision between the ball and block 𝐴, and 𝑁 𝐵 is between the ball and block 𝐵. If 𝑁 𝐴 is the last collision between 𝐴 and the ball, then 𝑎 𝑁 𝐴 ≤ 𝑐′ 𝑁 𝐴 Similarly, if 𝑁 𝐵 is the last collision between 𝐵 and the ball, 𝑐 𝑁 𝐵+1 ≤ 𝑏 𝑁 𝐵 With the analytic solutions, 𝑁 𝐴 and 𝑁 𝐵 are given by

Terminal velocities In this problem, we are particularly interested in the terminal velocities of the particles. With 𝑁 𝐴 and 𝑁 𝐵 , we find 𝑎 𝑡 = 𝑎 𝑁 𝐴 , 𝑏 𝑡 = 𝑏 𝑁 𝐵 , 𝑐 𝑡 =(𝑉− 𝑎 𝑡 − 𝑏 𝑡 )/𝛼, where the terminal velocity of the ball 𝑐 𝑡 is determined by the total momentum conservation of the system. We expect these terminal velocities are functions of the mass ratio 𝛼. Let us investigate their dependence on 𝛼.

Results: Magic Mass Ratio 𝜶 𝒌 Terminal velocities: 𝒂 𝒕 𝑨 , 𝒃 𝒕 𝑩 , 𝒄 𝒕 (𝑪) 𝜶=𝒎/𝑴 𝜶 𝒌 : 𝒌th magic mass ratio 𝜷 𝒌 : 𝒌th deficient mass ratio The terminal velocities of the blocks and the ball in unit of the initial velocity 𝑽 of 𝑨 as functions of 𝜶. At 𝜶= 𝜶 𝒌 , the energy and momentum of the incident block 𝑨 are completely transferred to the block 𝑩. Ee and Lee, Am. J. Phys. 83, 110 (2015)

List each cut from startTime to finalTime at every oneCutDuration Mathematica Codes List each cut from startTime to finalTime at every oneCutDuration (for example, in our case, from -0.8 s to 8.2 s and take cuts at every 0.04 s) Transform and export the lists into a mov file.

Results: A Generalized Newton’s Cradle [URL: http://dx.doi.org/10.1119/1.4897162.1] Results: A Generalized Newton’s Cradle

감사합니다