単振動

力学の入り口としてよく扱われる単振動についてです。単振動と呼ばれるものはバネの振動をイメージしてもらえば問題ないです。先に言っておくと、ここでの話は物理というより数学の段階の話しかしません。
知っている人にはひどく煩わしく感じる書き方をしていると思います。
微分方程式のもう少し細かい話は数学の「1 階線形微分方程式」でしています。

そもそも物理は現実の現象を方程式で表現した時点 (力学では運動方程式を作った時点) で一旦終わり、その後はその方程式が解けるかどうかという数学の問題に変わります (現象を表現するのにも数学は必要ですが)。そして、解が求まればそこからまた物理に戻り、解が物理としてどのような意味を持つのかを考えることになります。
で、物理においては微分方程式が頻繁に現れます (マクスウェル方程式、シュレーディンガー方程式、アインシュタイン方程式、ナビエ・ストークス方程式、等々)。そのために基本的な微分方程式の解きかたを単振動を使って示します。ここで出てくる単語が分からない人は、もっと初歩的な本なりサイトなりを見てください。
バネを用意し、振動していない状態の重りの位置を原点として、そこから動いた距離 (変位) を x、ω を角振動数、A を振幅、α を初期位相としたとき、ある時間 t での x は

x = A cos(ωt + α) , x = A sin(ωt + α)(1)と表現できます (直線に沿った振動)。ここらへんの単語が分からない人は検索サイトで検索すれば引っかかるのでそっちを見てください。この式で位置を表現できるのは、三角関数は周期を持っていて、バネの振動も周期を持っているからです。イメージとして全く振動が弱まらないバネの振動を考えて、それと三角関数のグラフを当てはめてみてください。
まずはこれを使って運動方程式を作れるので、時間での２階微分を行ってdx
dx= −ωA sin(ωt + α) ,= ωA cos(ωt + α)dt
dt⇓
d2 xd2 x2=−ω
Acos(ωt+α),= −ω 2 A sin(ωt + α)dt2dt2⇓d2 xd2 x2=−ωx,= −ω 2 xdt2dt2
結果を見てわかるように、cos だろうと sin だろうと最終的には同じ形になっています。後は重りの質量 m をかければいいので運動方程式は

md2 x= −mω 2 x = −kxdt2(k = mω 2 > 0)

(2)

最後での k への置き換えは利便性からよく使われ、k を復元力と呼びます。これが単振動での運動方程式になり、単振動を起こすためには力が −kx の形をしていればいいことが分かります。右辺にマイナスがついているのは計算していったらこうなったというのもそうなんですが、実際の運動を考えても妥当なものです。k が復元力と呼ば1れるように、バネがもとの位置に戻ろうとする力を表していることを考えれば分かります。例えば、x が正の位置にいたバネは負の方向に戻ろうと力の方向を負に向け、逆に x が負の位置にいたら力は正の方向を向きます。こういったことから符号にマイナスがつきます。
ここではバネの動きを先に考えてから運動方程式を作りましたが、バネに作用する力を先に与えて運動方程式を作るという手順もあります (フックの法則)。ただ、何も知らない段階で −kx の力が働いていると単振動になるというのにたどり着くのは、バネの動きが三角関数になっていると思いつくのに比べて難しいです。
運動方程式の解 (特解) は今の手順から分かるように (1) ですが、運動方程式を解いて同じ結果を導きます。三角関数を先に定義して運動方程式を求められたように、運動方程式に三角関数を仮定して代入してやれば方程式を解けることが予想できます。つまり、微分方程式の形から先に解が予想できるなら、その形を微分方程式に入れて解くという方法があり、実際に振動の問題では一般解 (そのまま一般的な解のこと) を三角関数で仮定して解くという乱暴といえば乱暴な方法を取ることができます。
解の形を先に与える場合には注意があります。そのために、単振動の運動方程式を解くための準備にもなるので、1 階微分方程式

dx= cxdt(3)を使って見ておきます。c は定数です。このとき、解として a が決まっていない x = eat を仮定すれば

d at
e = ceatdt
aeat = ceat
a=cとなり、勝手に置いた a が決まります。なので、解がx(t) = ectと求まります。しかし、これは一般解ではないです。n 階微分方程式の一般解は n 個の任意定数を含むものです。
ここで微分方程式を定数で A 倍してみると

Adx= Acxdtd(Ax) = c(Ax)dtとなり、Ax も同じ微分方程式を満たすことが分かります。よって

x(t) = Aectも解で、1 個の任意定数 A を含むので一般解となります。このように先に解の形を仮定する場合、任意定数をどのように加えるかを適切に判断する必要があります。実際に、x = ect + A では、微分方程式を満たさないことはすぐに分かります。

2

解の形を仮定せずに解いても、同じ一般解になることを見ておきます。この形の 1 階微分方程式は変数分離という方法で簡単に解けます。変数分離による方法は

dx= cxdtdx= cdtx∫∫dx= c dtxlog |x| = ct + A′′|x| = ect+Ax = Aect′′

このように行うもので、同じ結果が求まっています。A′ は積分定数で、A = ±eA (eA > 0) です。微分は簡単に言ってしまえば、微小な ∆x を微小な ∆t で割っているものなので (微分の定義は微小量変化したときの差を微小量で割る)、左辺には x だけが、右辺には t だけがくるように形式的な式変形を行えます。もしくは∫dxdt =dt∫dxとなることを踏まえた形式的な変形とも言えます (形式的はこのような積分の形になることを前提としているという意味)。このようにして、左辺と右辺で変数が揃うことから両辺を積分できるので、積分を実行して x を求めるというのが変数分離の手順です。
準備もできたので、単振動の運動方程式 (2) を解の形を仮定しない方法で解いていきます。この解き方は演算子法と名前が付いています（演算子法は非同次微分方程式の解法のことを指しますが、今の場合でも同じ発想）。方法は

md2 x= − kx
dt20=(d2k+ )xdt2mk)xm√√kk= (D + i)(D − i)xmm√√dk dk= ( +i)( − i)xdtm dtm= (D2 +このように変形させるものです。この変形は、見た目的には微分演算子 d/dt を D のようにただの記号に置き換えて、普通の代数と同じように扱うというものです。これができるのは、微分演算子が微分を実行する変数にちゃんと作用しており、もとの式の意味を変えないなら好きに変形していいためです。今の場合での微分演算に対する要求は、x に 2 回作用していろというものなので、この変形は式の意味を変えません。なぜなら、2 回微分が作用することは、置き換えを見ても分かるように、2 乗と同じ意味だからです。実際に逆にたどれば

3(d+idt√√√√dk dkk dxk)( − i)x = ( + i)(−ix)
m dtmdtm dtm√√d2 xk dx
k dxk= 2 −i+i+ xdt
m dtm dtm=d2 xk+ x2dtmとなって、もとの式に戻ります。このように、たとえ微分演算子だろうとも、計算規則を破らないなら計算しやすいように変形させてしまえます (微分演算子の意味を数学的にちゃんと理解していない段階では絶対に微分演算子の逆数を取らない方がいい)。このような変形で注意すべきなのは、k/m の項に t 依存性があるときで、その場合は t 微分がそこにも作用することになり、ここまで綺麗に変形できません。
上のような変形で 2 階微分方程式だったものが、2 つの 1 階微分方程式√√
dkdk( +i)x = 0 , ( − i)x = 0dtmdtmとなります。これは√√√√ddk dkk dk)( − i)x = ( − i)( + i)x = 0( +idtm dtmdtm dtm
なので、x にどちらかが作用して 0 になっていればいいからです。見やすく書けば

L+ (L− x) = L− (L+ x) = 0 ⇒ L− x = 0 , L+ x = 0ということです。

± で 2 つのパターンがありますが、符号が違うだけて解き方は同じなのでマイナスの方を解いていきます。それぞれの 1 階微分方程式はすでに見た (3) と同じなので、変数分離を使って解けます。変数分離によって√dxk=ixdtm√dxk=idtxm∫ √∫kdx=idtxm√klog x = it+Cm√|x(t)| = ei k/mt+C√x(t) = C1 ei k/mt4

C は積分定数で、C1 = ±eC です。プラスでも同様なので√x(t) = C2 e−i k/mtと求まります。それぞれの解を x1 (t), x2 (t) とします。x1 , x2 をもとの微分方程式 (2) に入れれば、どちらも成立していることが確かめられます。複素数による指数関数 eit が出てきていますが、これは知っているとして先に進みます。また、導出された解 x(t) は実数でなく複素数になっていることにも注意してください (実数の変数を複素数にする関数)。このため C1 , C2 も複素数です。
もとの微分方程式が x1 , x2 で成立しており、2 つの解 x1 , x2 に対して

md2d2 x1d2 x2(x1 + x2 ) = m 2 + m 2 = −kx1 − kx2 = −k(x1 + x2 )2dtdtdt(4)となっているので、± 両方の解 x1 , x2 を足したものも解です。後でまた触れますが、これは重ね合わせの原理と呼ばれます。
よって、任意定数を 2 つ含む一般解は√√x(t) = C1 ei k/mt + C2 e−i k/mt√= (C1 + C2 ) cos(kt) + i(C1 − C2 ) sin(m√kt)
m

ただし、x1 /x2 = 定数となっている場合では、足しても定数が変わるだけで一般解とはならないことに注意してください (足しても任意定数が 1 つのままだから)。これは本当によく使う微分方程式の解法の 1 つなので知らないとどこまでも苦労します。
最後の変形でe±iθ = cos θ ± i sin θというオイラーの公式を使ってますが、これは絶対に覚えた方がいいです (この微分方程式の解法とオイラーの公式を知っていれば大学で物理を習ったと言い張れるかも)。これは至宝とまで表現される公式です。
数学としてはこれで解けていますが、物理として問題なのが複素数になっていることです。現実の振動（重りの位置）においては虚数などというものはないので、物理の解としては不適切です。そこで、複素数の解 x(t) から実数のみの解を取り出します。これは単純に、A = C1 + C2 と B = i(C1 − C2 ) が実数になっている場合なので√x(t) = A cos(√kkt) + B sin(t)mmとし、A, B は実数と定義してしまえばいいです。C1 , C2 は任意の複素数なので、それらから作られる A, B も任意の実数です。
もう少し細かく言っておきます。物理として欲しいのは複素数でなく、実数のみに制限された解です。なので、複素数の解に制限を加えることで実数に制限します。そのための条件を C1 , C2 に与えます (三角関数で書くと C1 , C2だけが複素数だから)。

5複素数は C = R + iI として実部と虚部に分けられます（R, I は実数）。このため、C1 , C2 には 4 つの任意の実数がいます。しかし、実数に制限した一般解では実数による任意定数が 2 つあればいいので、2 つ多いです。このため、C1∗ = C2 として複素共役になることを要求すればC1 = R1 + iI1 , C2 = R2 + iI2 = R1 − iI1 = C1∗となり、任意の実数が 4 つから 2 つに減ります。そして、A, B は

A = C1 + C2 = 2R1 , B = i(C1 − C2 ) = −2I1として、実数になります。なので、実数の一般解は複素数の一般解に C1 = C2∗ の制限を与えたものです。というわけで、単振動の一般解の標準的な形としては

x = A cos(ωt) + B sin(ωt)(5)というのがよく使われます。また、任意定数を a, α として

A = a cos α , B = −a sin αと置き換えれば (sin, cos の値は 0 ∼ 1 なので、定数倍をつければ任意の定数になる)√kx = a cos(α) cos(t) − a sin(α) sin(m√√kk= a cos(t + α) (= ω)mm√kt)
mとなり、最初に置いた三角関数の式と同じになります。この場合では a と α が決定されていない定数です。また、C を仮定したところで、最初から C1 + C2 = a cos α, C1 − C2 = ia sin α としてもすぐに求まります。
今度は解の形を仮定して解いてみます。このときにも大事になるのが重ね合わせの原理です。重ね合わせの原理
は、同次の 2 階線形微分方程式において、定数倍の関係になっていない解 x1 , x2 による

x = C1 x1 + C2 x2(x1̸= const)
x2も解になるというものです (const は定数)。C1 , C2 は任意定数です。これから、2 つの解 x1 , x2 が分かれば、任意定数を 2 つ含む一般解を作れます。また、(4) から重ね合わせの原理が成立する理由はすぐに分かると思います。
解の形として、x = eβt と仮定します。そうすると、(2) から

6d2 βtke = − eβtdt2mβ 2 eβt = −k βtemβ2 = −km√

β = ±ikmとなり、解は

x1 (t) = ei

√k/mt

, x2 (t) = e−i√k/mt

x1 , x2 は定数倍の関係になっていないので、任意定数を C1 , C2 として重ね合わせの原理から一般解はx(t) = C1 x1 (t) + C2 x2 (t) = C1 ei√k/mt√+ C2 e−i k/mtと求まります。重ね合わせの原理さえ知っていれば、これがもっとも簡単な解法です。しかし、すでに触れたように、x(t) が複素数になっているので、実数に変える必要があります。ただし、最初から実数の解だけが欲しいな
ら、最初に触れたように sin, cos が定数倍でない 2 つの実数の解とすぐに分かるので、実数の定数をくっつけてそれらを足したほうが手っ取り早いです (一般解 (5) になる)。
おそらく力学を習うときには最初にこういった計算を勉強すると思います。ただ、微分方程式を解くには指数関数 et を使うと楽ですが複素数が出てきてしまうので、最初は計算が面倒でも三角関数を使った場合から始めた方がいいと思います。
ちなみに、単振動のことを調和振動と言ったりもし、こういった運動をするもの (粒子) を調和振動子 (harmonicoscillator) と言います。量子力学ではほとんど調和振動子で統一されて使われています。
また、等速円運動も単振動の１種です。これは等速円運動の運動方程式d2 x= −ω 2 x
dt2(x = (x, y))がバネの振動と同じ形の式になっているからです (円運動では角振動数を角速度と言う)。
ここでの重要な点は 2 階微分方程式の解法、オイラーの公式といったものです。これらはあらゆる分野で活躍するので、忘れると一々確かめる羽目になります。後は、振動しているものに対しては解く時に一般解として三角関数を仮定して解いていけるものもあるということです。
重要なことなので、同次の 2 階線形微分方程式の重ね合わせの原理を簡単にまとめておきます。同次の 2 階線形微分方程式

d2 xdx+ a1 (t)+ a2 (t)x = 02dtdtの一般解は (a1 , a2 は与えられている任意の関数)、定数倍の関係でない 2 つの解 x1 (t), x2 (t) から

7x(t) = C1 x1 (t) + C2 x2 (t)(x1 (t)̸= const)
x2 (t)と作れます。C1 , C2 は定数です。
ついでに、知っておくと計算間違いを見つけることが出来る方法を説明しておきます。そのために、物理量に対する次元 (dimension) の概念を持ち込みます。乱暴に言えば、次元は単位を抽象化したようなものです。例えば、長さの単位としては、メートルやらキロメートルやら尺度によっていろいろありますが、結局のところ長さという量に変わりはありません。なので、単位を無視して長さという概念にしてしまえば非常に便利です。そして、他の基本量となる質量や時間といったものをひっくるめたものを次元と呼びます。例として、力 F は質量 × 加速度
なので、質量を M 、距離を L、時間を T とすれば、F の次元は[F ] =ML
T2となります (次元を表すときには [ ] で囲むことが多いです)。これが次元解析と呼ばれるものの基本です。物理量は何かしらの次元を持つので、何かの計算をしていって、その結果次元の違うものが得られたら間違いと分かります。力の計算をしたら、M 2 L/T の次元になったとかいうのは、どこかで計算間違いをしています。
これと関係した話をついでにしておきます。物理ではよく指数関数 ex が出てきますが、指数関数の肩に乗っている量は無次元量 (単位を持たない量、例えば円周率 π とか確率とか個数とか) だということです。これは指数のマクローリン展開を見れば分かりますが、指数は1
ex = 1 + x + x2 + · · ·2のように展開されます。このとき x が、例えば長さの次元なんかを持っていると、第 1 項は無次元、第 2 項は長さ、第 3 項は長さの 2 乗…として、式の中で次元の違うものが現われます。で、次元の違うものは足せないので、おかしなことになります。なので、指数関数の肩に乗っているものは次元を持ってはいけないです。他にもこのタイプで展開される関数は無次元量となっている必要があります (対数 log x の場合、log[x1 x2 ] = log x1 + log x2 のように分解できることに注意)。
最後に単振動の運動エネルギーとポテンシャル (位置エネルギー) を求めます。力学的エネルギーの式に今の結果を入れればいいだけです (導出は下の補足参照)。単振動での結果 x = a cos(ωt + α) から、運動エネルギーはT =11mv 2 = ma2 ω 2 sin2 (ωt + α)22(v =dx= −aω sin(ωt + α))dt

位置エネルギーは

∫ x
U =−′

∫ x
dx kx =dx F =00というわけで力学的エネルギーは

8

1 21kx = ka2 cos2 (ωt + α)22

E =T +U =1
1ma2 ω 2 sin2 (ωt + α) + ka2 cos2 (ωt + α)
22=1
1 2 2ka sin (ωt + α) + ka2 cos2 (ωt + α)
22=

1 2ka
2

見てわかるとおり、力学的エネルギーは定数となり保存されているのが確かめられます (より正確には時間微分で0 になる)。

・補足
素直に微分方程式を解きましたが、ちょっとひねった解き方もあります。これは力学的エネルギーを利用して解くというもので、こういった変形に慣れるといった意味で触れておきます (このような解き方もよく行われる)。積分もやや複雑なものを扱うのでいい練習になります。ただし、先に言っておくと、どう考えてもこんな方法で単振動の式を解くのは面倒なだけなので、微分方程式の解き方の例程度でいいです。
力学的エネルギーを求めるのと同じ手順を行います。運動方程式は

md2 x= −kxdt2

この両辺に dx/dt をかけて t で積分し∫md2 x dx
dt = −kdt2 dt∫xdxdtdt

まず、左辺を計算すると∫md2 x dx
dt = mdt2 dt

∫

1= m2
1= m2=(∫∫d dx dx) dt
dt dt dt
d dx dx()dt
dt dt dt
d dx 2( ) dt
dt dt

dx
1m( )22dt

1 行目から 2 行目へは

d dx dx
d2 x dx dx d2 x
d dx dx= 2(()= 2+)dt dt dt
dt dt
dt dt2dt dt dtd dx) は微分の作用がその外には作用していないことを表します。やっていることは、微分がdt dtかかっている部分を変化させてその帳尻をしているだけです。
を使っています。(

9右辺は

∫−kx

dx
1
dt = − kdt2

∫d 21x dt = − kx2
dt2(d 2dxx = 2x )dtdt

こちらは簡単な微分による変形なので、わかりやすいです。というわけで、積分定数を C とすれば

dx11m( )2 = − kx2 + C2dt2
これで 2 階微分方程式から 1 階微分方程式に変形されました。後はルートにしてもう 1 回積分すれば解が求まります。また、書き換えると

dx
11m( )2 + kx2 = C2dt2となって、これが単振動での力学的エネルギー保存の式です。左辺の第 1 項が運動エネルギー、第 2 項がポテンシャルです。今行ったように力学的エネルギー保存の式は運動方程式を変形したものなので、この式を解くことは運動方程式を解くことと同じです。
積分して解を求めます。k は正と定義されているために左辺は必ず正となるので (質量 m は正で、実数の 2 乗は正)、右辺の C も正です。ここで、C を a を定数として

C=1 2ka2と置きます。これは C をこのように置くと計算が楽になるのを知っているからで (後で余計な置き換えをしないですむ)、C のまま行っても問題はありません。そうすると

10

1dx
11m( )2 + kx2 = ka22dt22dx 2) = k(a2 − x2 )dt√dxk√ 2= ±(a − x2 )dtm∫∫ √kdx√= ±dtm(a2 − x2 )m(∫√√− sin θ(1 − cos2 θ)∫dθ = ±− sin θdθ = ±sin θ√√−θ = ±

ktm(x = a cos θ , dx = − sin θdθ)

ktm
kt+αm

√kt+αm√xkcos(arccos( )) = cos(±t + α)am√kx
= cos(t + α)am√kx = a cos(t + α)
mxarccos( ) = ±a

途中やや面倒なことになっていますが、上で求めたものと同じ結果になります。cos(三角関数) の逆関数 arccos(逆三角関数) はcos θ = x ⇒ θ = arccos x ⇒ cos θ = cos(arccos x) = xと与えられます。最後に ± が落ちているのは cos θ = cos(−θ) だからです。こういった関係上 x = a sin θ とおくより cos でおいたほうが分かりやすいです。また、sin で表すなら、積分定数 α を α − π/2 にしてやればいいだけです。この方法だと虚数が出てこないですし、定数を cos や sin にしないで直接最後の式が出てくるという点では便利といえば便利です。

11