물리학에서 Mathmatica 활용하기 (Selective
Download
Report
Transcript 물리학에서 Mathmatica 활용하기 (Selective
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).
𝑖
1
0
0
𝜎
• 𝛾0 =
, 𝛾𝑖 =
0 −1
−𝜎 𝑖 0
• 𝜎 𝑖 는 Pauli sigma matrix
0 1
0 −𝑖
1 0
1
2
3
𝜎 =
,𝜎 =
,𝜎 =
.
1 0
𝑖 0
0 −1
REDUCE 계산 예
• 오른쪽 프로그램 결과물은
Dirac gamma matrix 곱의
trace를 계산한 예이다.
𝑝
𝑝
𝑝
Tr 𝛾 1 𝛾 1 ⋯ 𝛾 8 =?
• 입자물리 이론에 빈번히
등장하는 방대한 양의
단순연산의 해석적 결과를
얻기 위해 Symbolic
Manipulation을 개발하여 활용
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:
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
패턴별 비교 예제
• 다음과
ex1[x_,
ex2[x_,
ex3[x_,
같은 3가지 함수를 정의해보자.
y_] := x + y (y 밑줄 한 개)
y_ _] := x + y (y 밑줄 두 개)
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,
1 𝑎𝑏
𝑎
𝑏
Tr 𝑇 𝑇 = 𝛿 .
2
• 이 등식을 Mathematica로 쓰면 다음과 같다:
tr[]=n
tr[a_]:=0
tr[a_,b_]:= delta[a,b]/2
• 다음으로 fundamental representation에 따르면
structure constant 𝑓 𝑎𝑏𝑐 과 𝑑 𝑎𝑏𝑐 는
1 𝑎𝑏
1 𝑎𝑏𝑐
𝑎 𝑏
𝑇 𝑇 =
𝛿 𝐼 + (𝑑
+ 𝑖𝑓 𝑎𝑏𝑐 )𝑇 𝑐
2𝑁
2
이를 정리하면
𝑓 𝑎𝑏𝑐 = −2𝑖 Tr [𝑇 𝑎 , 𝑇 𝑏 ]𝑇 𝑐
쓰면 다음과 같다:
• Completeness relation에 따르면
1
1
𝑎
𝑎
𝑇 𝑖𝑗 𝑇 𝑘ℓ =
− 𝛿𝑖𝑗 𝛿𝑘ℓ + 𝛿𝑖ℓ 𝛿𝑗𝑘
2
𝑁
• 이를 활용하면 다음의 등식을 얻을 수 있다:
1
1
Tr
=
Tr 𝐴𝐶 + Tr 𝐵 − Tr 𝐴𝐵𝐶 ,
2
N
1
1
𝑎
𝑎
Tr 𝐴𝑇 𝐵 Tr 𝐶𝑇 𝐷 =
Tr 𝐴𝐷𝐶𝐵 − Tr 𝐴𝐵 Tr 𝐶𝐷
2
N
𝐴𝑇 𝑎 𝐵
𝑇𝑎𝐶
,
여기서 𝐴, 𝐵, 𝐶, 𝐷는 임의의 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]]
• 이제 프로그램과 실제 결과들을 비교해보자
결과 비교
1 𝑎𝑏
Tr 𝑇 𝑇 = 𝛿
2
𝑎 𝑎 𝑏
Tr 𝑇 𝑇 𝑇 = 0
1
Tr 𝑇 𝑎 𝑇 𝑏 Tr 𝑇 𝑎 𝑇 𝑐 = 𝛿 𝑏𝑐
4
2
𝑁 − 1 𝑏𝑐
𝑎
𝑎
𝑏
𝑐
Tr 𝑇 𝑇 𝑇 𝑇 =
𝛿
4𝑁
1 𝑐𝑑
Tr 𝑇 𝑎 𝑇 𝑏 𝑇 𝑐 Tr 𝑇 𝑎 𝑇 𝑏 𝑇 𝑑 = −
𝛿
4𝑁
𝑁 2 − 1 𝑐𝑑
𝑎
𝑏
𝑎
𝑏
𝑐
𝑑
Tr 𝑇 𝑇 𝑇 𝑇 𝑇 𝑇 = −
𝛿
8𝑁 2
𝑎 𝑏
임의의 경우로 확장하여,
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
1
𝑑
∫
𝑑
𝑘
𝑛
𝑛
𝑖𝜋𝑑/2
𝐷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
1
𝑑
∫ 𝑑 𝑘 𝑛1 𝑛2
𝑑/2
𝑖𝜋
𝐷1 𝐷2
+∞
+∞
0 +∞
1
≡ ∫−∞ 𝑑𝑘 ∫−∞ 𝑑𝑘 ⋯ ∫−∞ 𝑑𝑘 𝑑−1
2
2
• 𝐷1 ≡ −𝑘 + 𝑚 − 𝑖𝜀,
• 𝐷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
Elastic collision
• 𝑀 and 𝑚: masses of 𝐴 and 𝐵
𝑝2
𝑘2
𝑝′2 𝑘 ′2
+
=
+
2𝑀 2𝑚 2𝑀 2𝑚
𝑝 + 𝑘 = 𝑝′ + 𝑘′
• 𝑝 and 𝑘: momenta of 𝐴 and 𝐵
before the collision
• 𝑝′ and 𝑘′: momenta of 𝐴 and 𝐵
after the collision
Equivalence of the elastic collision
and the rotational transformation
𝑝2
𝑘2
𝑝′2 𝑘 ′2
+
=
+
2𝑀 2𝑚 2𝑀 2𝑚
𝑝 + 𝑘 = 𝑝′ + 𝑘′
• Let us define a 2D vector as
𝛼𝑝 ,
𝑘
where 𝛼 ≡ 𝑚/𝑀.
• From the kinetic energy conservation,
we find the norm of
∴ There is an orthogonal transformation Λ between
𝛼 𝑝 is invariant:
𝑘
𝛼 𝑝 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:
𝛼 𝑝𝐴
𝛼𝑝𝐵
𝑝𝐶
const.
→
𝛼 𝑝𝐴2 + 𝛼 𝑝𝐵2 + 𝑝𝐶2 = 𝛼 𝑝′2𝐴 + 𝛼 𝑝′2𝐵 + 𝑝′2𝐶 =
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
3D rotational transformation along the axis
by an angle 𝜓
1
(1, 1,
2+𝛼
= 2 tan−1
𝛼),
𝛼(2 + 𝛼)
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 +
𝑐𝑛 = 𝑉CM 1 +
cos 𝑛𝜓
cos
𝜓
2
1
,
1
sin 𝑛+4 𝜓
𝜓
cos 2
𝑏𝑛 = 𝑉CM 1 +
,
cos 𝑛+2 𝜓
𝑐′𝑛 = 𝑉CM 1 +
𝜓
cos 2
1
sin 𝑛+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)
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.
[URL: http://dx.doi.org/10.1119/1.4897162.1]
Results: A Generalized Newton’s Cradle
감사합니다