微扰法求解非线性谐振子 {.title1}

问题简述

非线性谐振子的方程为:
x¨+ω02x+Ax2+Bx3+⋯=0\ddot{x} +\omega_0^2x + A x^2 + B x^3 +\cdots = 0x¨+ω02​x+Ax2+Bx3+⋯=0
我们假设加入非线性项之后,x(t)x(t)x(t)依然是一个周期函数,但振动的周期和函数形式不再是简单的简谐振动sin⁡(ω0t),cos⁡(ω0t)\sin(\omega_0t),\cos(\omega_0t)sin(ω0​t),cos(ω0​t)。但由于它还是周期函数(假设这个原频率为ω\omegaω),我们可以对它进行傅里叶级数展开:

x(t)=∑n=−∞∞fneinωtx(t)=\sum_{n=-\infty}^{\infty} f_n e^{in\omega t}x(t)=n=−∞∑∞​fn​einωt

其中fnf_nfn​是各项的振幅。

xnx^nxn的计算

我们有了x(t)x(t)x(t)的展开式,如何计算各阶非线性项中xn(t)x^n(t)xn(t)的值?这是计算的核心问题

x(t)=∑n=−∞∞fneinωtx2(t)=∑n=−∞∞∑m−∞∞fnfmei(n+m)ωt=∑u=−∞∞(∑n=−∞∞fnfu−n)eiuωt=∑u=−∞∞gueiuωt\begin{align*} x(t)&=\sum_{n=-\infty}^{\infty} f_n e^{in\omega t}\\ x^2(t)&=\sum_{n=-\infty}^{\infty}\sum_{m-\infty}^{\infty} f_n f_m e^{i(n+m)\omega t}\\ &=\sum_{u=-\infty}^\infty\left(\sum_{n=-\infty}^{\infty} f_n f_{u-n}\right) e^{iu\omega t}\\ &= \sum_{u=-\infty}^\infty g_u e^{iu\omega t} \end{align*}x(t)x2(t)​=n=−∞∑∞​fn​einωt=n=−∞∑∞​m−∞∑∞​fn​fm​ei(n+m)ωt=u=−∞∑∞​(n=−∞∑∞​fn​fu−n​)eiuωt=u=−∞∑∞​gu​eiuωt​
其中gu=(f∗f)u=∑n=−∞∞fnfu−ng_u = (f*f)_u=\sum_{n=-\infty}^{\infty} f_n f_{u-n}gu​=(f∗f)u​=∑n=−∞∞​fn​fu−n​是序列fnf_nfn​和自己的离散卷积
同理,xk(t)x^k(t)xk(t)的计算就是kkk个序列fnf_nfn​作离散卷积,结果与fnf_nfn​一样,也构成一个无穷序列。下面我们展示一个离散卷积的计算示例。

离散卷积

我们将以f(0)f^{(0)}f(0)为例,展示卷积的计算过程。f(0)f^{(0)}f(0)的表达式为:
f1(0)=af−1(0)=a‾f_1^{(0)} = a\\ f_{-1}^{(0)}=\overline a\\f1(0)​=af−1(0)​=a

计算g=f(0)∗f(0)g=f^{(0)}*f^{(0)}g=f(0)∗f(0):
g0=∑n=−∞∞fn(0)f−n(0)=2aa‾g2=∑n=−∞∞fn(0)f2−n(0)=a2,g−2=a‾2g_0 =\sum_{n=-\infty}^{\infty} f_n^{(0)}f_{-n}^{(0)}= 2a\overline{a}\\ g_2=\sum_{n=-\infty}^{\infty} f_n^{(0)}f_{2-n}^{(0)}=a^2,\\ g_{-2}=\overline{a}^2\\g0​=n=−∞∑∞​fn(0)​f−n(0)​=2aag2​=n=−∞∑∞​fn(0)​f2−n(0)​=a2,g−2​=a2

在此基础上计算h=f(0)∗f(0)∗f(0)=g∗f(0)h=f^{(0)}*f^{(0)} * f^{(0)}=g * f^{(0)}h=f(0)∗f(0)∗f(0)=g∗f(0):
h3=∑n=−∞∞gn(0)f3−n(0)=a3,h−3=∑n=−∞∞gn(0)f−3−n(0)=a‾3h±1=3a2a‾,3aa‾2\begin{align*} h_{3}&=\sum_{n=-\infty}^{\infty} g_n^{(0)}f_{3-n}^{(0)} = a^3,\\ h_{-3}&=\sum_{n=-\infty}^{\infty} g_n^{(0)}f_{-3-n}^{(0)} =\overline{a}^3\\ h_{\pm 1}&= 3a^2 \overline{a},3a\overline{a}^2\\ \end{align*}h3​h−3​h±1​​=n=−∞∑∞​gn(0)​f3−n(0)​=a3,=n=−∞∑∞​gn(0)​f−3−n(0)​=a3=3a2a,3aa2​

卷积计算可以不断地进行下去:
......

可以看出,对同一个函数地频谱进行多次卷积,会使得频谱由低频区向两侧的高频区扩展开来。这也是非线性谐振子频谱中高频项的来源。

计算

1.线性情形下的计算

当方程没有非线性项时:
x¨+ω02x=0\ddot{x} +\omega_0^2x=0x¨+ω02​x=0
它的通解为:
x(t)=asin⁡(ω0t)+bcos⁡(ω0t)x(t)=a\sin(\omega_0 t)+b\cos(\omega_0 t)x(t)=asin(ω0​t)+bcos(ω0​t)
或者写成复数形式:
x(t)=f1eiω0t+f−1e−iω0tx(t)=f_{1}e^{i\omega_0 t}+f_{-1} e^{-i\omega_0 t}x(t)=f1​eiω0​t+f−1​e−iω0​t
由于xxx是实数,所以f1=f−1∗f_{1}=f_{-1}^*f1​=f−1∗​

2.非线性情形的计算思路

当存在非线性项,且非线性项的能量远小于谐振子项时,我们假设它对fnf_nfn​和ω\omegaω的影响也是很小的,所以可以写成:

fn=fn(0)+fn(1)+fn(2)+⋯ω=ω0+ω1+ω2+⋯f_n = f_n^{(0)}+f_n^{(1)}+f_n^{(2)}+\cdots\\ \omega = \omega_0 +\omega_1 +\omega_2 +\cdotsfn​=fn(0)​+fn(1)​+fn(2)​+⋯ω=ω0​+ω1​+ω2​+⋯

把它们和非线性项代入方程:
x¨+ω02x+Ax2+Bx3+⋯=0\ddot{x} +\omega_0^2x + A x^2 + B x^3 +\cdots = 0x¨+ω02​x+Ax2+Bx3+⋯=0
0=d2dt2∑n=−∞∞(fn(0)+fn(1)+fn(2)+⋯ )ein(ω0+ω1+ω2+⋯ )t+ω02∑n=−∞∞(fn(0)+fn(1)+fn(2)+⋯ )ein(ω0+ω1+ω2+⋯ )t+A∑n=−∞∞(f(0)+f(1)+f(2)+⋯ )∗(f(0)+f(1)+f(2)+⋯ )nein(ω0+ω1+ω2+⋯ )t+B∑n=−∞∞(f∗f∗f)nein(ω0+ω1+ω2+⋯ )t0=\frac{\mathrm d^2}{dt^2}\sum_{n=-\infty}^{\infty} (f_n^{(0)}+f_n^{(1)}+f_n^{(2)}+\cdots)e^{in(\omega_0 +\omega_1 +\omega_2 +\cdots)t}+\omega_0^2\sum_{n=-\infty}^{\infty} (f_n^{(0)}+f_n^{(1)}+f_n^{(2)}+\cdots)e^{in(\omega_0 +\omega_1 +\omega_2 +\cdots)t}+A\sum_{n=-\infty}^{\infty} (f^{(0)}+f^{(1)}+f^{(2)}+\cdots)*(f^{(0)}+f^{(1)}+f^{(2)}+\cdots)_n e^{in(\omega_0 +\omega_1 +\omega_2 +\cdots)t}+B\sum_{n=-\infty}^{\infty}(f*f*f)_ne^{in(\omega_0 +\omega_1 +\omega_2 +\cdots)t}0=dt2d2​∑n=−∞∞​(fn(0)​+fn(1)​+fn(2)​+⋯)ein(ω0​+ω1​+ω2​+⋯)t+ω02​∑n=−∞∞​(fn(0)​+fn(1)​+fn(2)​+⋯)ein(ω0​+ω1​+ω2​+⋯)t+A∑n=−∞∞​(f(0)+f(1)+f(2)+⋯)∗(f(0)+f(1)+f(2)+⋯)n​ein(ω0​+ω1​+ω2​+⋯)t+B∑n=−∞∞​(f∗f∗f)n​ein(ω0​+ω1​+ω2​+⋯)t

以上式子可以简写成:
∑n=−∞∞(−n2ω2fn+ω02fn+A(f∗f)n+B(f∗f∗f)n+⋯ )einωt=0\sum_{n=-\infty}^\infty (-n^2\omega^2 f_n+\omega_0^2f_n +A(f*f)_n+B(f*f*f)_n+\cdots)e^{in\omega t}=0n=−∞∑∞​(−n2ω2fn​+ω02​fn​+A(f∗f)n​+B(f∗f∗f)n​+⋯)einωt=0
左侧为傅里叶展开式,右边是零,由einωte^{in\omega t}einωt的完备性知,左侧各项系数为0:
−n2ω2fn+ω02fn+A(f∗f)n+B(f∗f∗f)n+⋯=0∀n-n^2\omega^2 f_n+\omega_0^2f_n +A(f*f)_n+B(f*f*f)_n+\cdots=0\qquad \forall n−n2ω2fn​+ω02​fn​+A(f∗f)n​+B(f∗f∗f)n​+⋯=0∀n

−n2(ω0+ω1+ω2+⋯ )2(fn(0)+fn(1)+fn(2)+⋯ )+ω02(fn(0)+fn(1)+fn(2)+⋯ )+A∑n=−∞∞(f(0)+f(1)+f(2)+⋯ )∗(f(0)+f(1)+f(2)+⋯ )n+⋯=0-n^2(\omega_0 +\omega_1 +\omega_2 +\cdots)^2 (f_n^{(0)}+f_n^{(1)}+f_n^{(2)}+\cdots)+\omega_0^2 ( f_n^{(0)}+f_n^{(1)}+f_n^{(2)}+\cdots)+A\sum_{n=-\infty}^{\infty} (f^{(0)}+f^{(1)}+f^{(2)}+\cdots)*(f^{(0)}+f^{(1)}+f^{(2)}+\cdots)_n+\cdots=0−n2(ω0​+ω1​+ω2​+⋯)2(fn(0)​+fn(1)​+fn(2)​+⋯)+ω02​(fn(0)​+fn(1)​+fn(2)​+⋯)+A∑n=−∞∞​(f(0)+f(1)+f(2)+⋯)∗(f(0)+f(1)+f(2)+⋯)n​+⋯=0
将上式按大小阶数展开,相同阶数和为零,得到方程:
第零阶:(−n2+1)ω02fn(0)=0,∀n\text{第零阶:}\quad(-n^2+1)\omega_0^2 f_n^{(0)}=0,\forall n第零阶:(−n2+1)ω02​fn(0)​=0,∀n

第一阶:A(f(0)∗f(0))n+ω02fn(1)−2n2ω0ω1fn(0)−n2ω0fn(1)=0,∀n\text{第一阶:}\quad A(f^{(0)}*f^{(0)})_n +\omega_0^2f_n^{(1)}-2n^2 \omega_0 \omega_1 f_n^{(0)}-n^2 \omega_0 f_n^{(1)}=0,\forall n第一阶:A(f(0)∗f(0))n​+ω02​fn(1)​−2n2ω0​ω1​fn(0)​−n2ω0​fn(1)​=0,∀n

第零阶

从第零阶中可以解出
{fn(0)=0,n≠±1fn(0)≠0,n=±1\begin{cases} f_n^{(0)}= 0,n\ne \pm 1\\ f_n^{(0)}\ne 0, n=\pm 1 \end{cases}{fn(0)​=0,n=±1fn(0)​=0,n=±1​
由于x(t)x(t)x(t)为实数,fn=fn∗f_n=f_n^*fn​=fn∗​,不妨设f1(0)=a,f−1(0)=a‾f_{ 1}^{(0)}=a,f_{ -1}^{(0)}=\overline{a}f1(0)​=a,f−1(0)​=a
这对应线性项:
x(t)=2Re(a)cos⁡ω0t−2Im(a)sin⁡ω0tx(t)=2\mathrm{Re}(a) \cos \omega_0 t-2\mathrm{Im}(a) \sin \omega_0 tx(t)=2Re(a)cosω0​t−2Im(a)sinω0​t

第一阶

A(f(0)∗f(0))n+ω02fn(1)−2n2ω0ω1fn(0)−n2ω0fn(1)=0,∀n\quad A(f^{(0)}*f^{(0)})_n +\omega_0^2f_n^{(1)}-2n^2 \omega_0 \omega_1 f_n^{(0)}-n^2 \omega_0 f_n^{(1)}=0,\forall nA(f(0)∗f(0))n​+ω02​fn(1)​−2n2ω0​ω1​fn(0)​−n2ω0​fn(1)​=0,∀n

第一阶中含有fn(1),ω1f_n^{(1)},\omega_1fn(1)​,ω1​两个未知量。
当n±1n\pm 1n±1时,方程中fn(1)f_n^{(1)}fn(1)​前系数为零,方程中只剩下ω1\omega_1ω1​,可以解出:
A(f(0)∗f(0))±1−2ω0ω1f±1(0)=0ω1=A(f(0)∗f(0))±12ω0f±10A(f^{(0)}*f^{(0)})_{\pm 1} -2\omega_0 \omega_1 f_{\pm 1}^{(0)}=0\\ \omega_1 = \frac{A(f^{(0)}*f^{(0)})_{\pm 1}}{2\omega_0 f_{\pm 1}^{0}}A(f(0)∗f(0))±1​−2ω0​ω1​f±1(0)​=0ω1​=2ω0​f±10​A(f(0)∗f(0))±1​​
经过计算知道ω1=0\omega_1=0ω1​=0
当n≠±1n\ne \pm 1n=±1时,代入ω1=0\omega_1=0ω1​=0可以计算各个fn(1)f_n^{(1)}fn(1)​的值:
fn(1)=A(f(0)∗f(0))n(n2−1)ω02(n≠±1)f_n^{(1)}=\frac{A(f^{(0)}*f^{(0)})_n}{(n^2-1)\omega_0^2}\qquad (n\ne \pm 1)fn(1)​=(n2−1)ω02​A(f(0)∗f(0))n​​(n=±1)
看起来我们无法计算f±1(1)f_{\pm 1}^{(1)}f±1(1)​的值,但因为第零阶中的aaa是人为规定的,故可以包含高阶下n=±1n=\pm 1n=±1的微扰(相当于假设振动基频的振幅就是a,a‾a,\overline{a}a,a)
因此我们不妨设f±1(1)=0f_{\pm 1}^{(1)}=0f±1(1)​=0

更高阶的一般性分析

第kkk阶的方程可以写作:
(−n2+1)ω02fn(k)−2fn(0)n2ω0ωk+λn(ω02,A1,⋯ ,Ak,ω1,⋯ ,ωk−1,fn(0),fn(1),⋯ ,fn(k−1))=0(-n^2+1)\omega_0^2 f_n^{(k)}-2f_n^{(0)}n^2\omega_0 \omega_k +\lambda_n(\omega_0^2,A_1,\cdots,A_{k},\omega_1,\cdots,\omega_{k-1},f_n^{(0)},f_n^{(1)},\cdots,f_n^{(k-1)})=0(−n2+1)ω02​fn(k)​−2fn(0)​n2ω0​ωk​+λn​(ω02​,A1​,⋯,Ak​,ω1​,⋯,ωk−1​,fn(0)​,fn(1)​,⋯,fn(k−1)​)=0
在求第kkk阶之前,我们已经求得了ω1,⋯ ,ωk−1,fn(0),⋯ ,fn(k−1)\omega_1,\cdots,\omega_{k-1},f_n^{(0)},\cdots,f_n^{(k-1)}ω1​,⋯,ωk−1​,fn(0)​,⋯,fn(k−1)​的值,因此函数λn\lambda_nλn​是已知项

  • n=±1n= \pm 1n=±1 可以求出ωk\omega_kωk​
  • n≠±1n\ne \pm 1n=±1可以求出fn(k)(n≠±1)f_n^{(k)}(n\ne \pm 1)fn(k)​(n=±1)
    因此可以不断地计算下去。

计算自动化

可以看到,更高阶的计算十分繁琐,涉及的计算不仅项数极多,而且计算式中存在对无穷序列的多次离散卷积,很难处理。为了减少计算量,我们转向自动化符号计算工具(sympy),开发了一个计算各阶项参数的程序

一些重要的结果:

(下面设定f1(0)=a,f−1(0)=a‾f_1^{(0)}=a,f_{-1}^{(0)}=\overline{a}f1(0)​=a,f−1(0)​=a)

第一阶

ω1=0\omega_1=0ω1​=0
f0(1)=−2A1aa‾ω02f_0^{(1)}=- \frac{2 A_{1} a \overline{a}}{\omega_{0}^{2}}f0(1)​=−ω02​2A1​aa​
f2(1)=A1a23ω02,f−2(1)=A1a‾23ω02f_{2}^{(1)}=\frac{A_{1} a^{2}}{3 \omega_{0}^{2}},\qquad f_{-2}^{(1)}=\frac{A_{1} \overline{a}^{2}}{3 \omega_{0}^{2}}f2(1)​=3ω02​A1​a2​,f−2(1)​=3ω02​A1​a2​

第二阶

ω2=a(−10A12+9A2ω02)a‾6ω03\omega_2=\frac{a \left(- 10 A_{1}^{2} + 9 A_{2} \omega_{0}^{2}\right) \overline{a}}{6 \omega_{0}^{3}}ω2​=6ω03​a(−10A12​+9A2​ω02​)a​
f3(2)=A12a312ω04+A2a38ω02,f−3(2)=A12a‾312ω04+A2a‾38ω02f_{3}^{(2)}=\frac{A_{1}^{2} a^{3}}{12 \omega_{0}^{4}} + \frac{A_{2} a^{3}}{8 \omega_{0}^{2}},\qquad f_{-3}^{(2)}=\frac{A_{1}^{2} \overline{a}^{3}}{12 \omega_{0}^{4}} + \frac{A_{2} \overline{a}^{3}}{8 \omega_{0}^{2}}f3(2)​=12ω04​A12​a3​+8ω02​A2​a3​,f−3(2)​=12ω04​A12​a3​+8ω02​A2​a3​

第三阶

ω3=0\omega_3=0ω3​=0
f0(3)=−38A13a2a‾29ω06+10A1A2a2a‾2ω04−6A3a2a‾2ω02f_0^{(3)}=- \frac{38 A_{1}^{3} a^{2} \overline{a}^{2}}{9 \omega_{0}^{6}} + \frac{10 A_{1} A_{2} a^{2} \overline{a}^{2}}{\omega_{0}^{4}} - \frac{6 A_{3} a^{2} \overline{a}^{2}}{\omega_{0}^{2}}f0(3)​=−9ω06​38A13​a2a2​+ω04​10A1​A2​a2a2​−ω02​6A3​a2a2​
f2(3)=59A13a3a‾54ω06−31A1A2a3a‾12ω04+4A3a3a‾3ω02,f−2(3)=59A13aa‾354ω06−31A1A2aa‾312ω04+4A3aa‾33ω02f_{2}^{(3)}=\frac{59 A_{1}^{3} a^{3} \overline{a}}{54 \omega_{0}^{6}} - \frac{31 A_{1} A_{2} a^{3} \overline{a}}{12 \omega_{0}^{4}} + \frac{4 A_{3} a^{3} \overline{a}}{3 \omega_{0}^{2}},\qquad f_{-2}^{(3)}=\frac{59 A_{1}^{3} a \overline{a}^{3}}{54 \omega_{0}^{6}} - \frac{31 A_{1} A_{2} a \overline{a}^{3}}{12 \omega_{0}^{4}} + \frac{4 A_{3} a \overline{a}^{3}}{3 \omega_{0}^{2}}f2(3)​=54ω06​59A13​a3a​−12ω04​31A1​A2​a3a​+3ω02​4A3​a3a​,f−2(3)​=54ω06​59A13​aa3​−12ω04​31A1​A2​aa3​+3ω02​4A3​aa3​
f4(3)=A13a454ω06+A1A2a412ω04+A3a415ω02,f−4(3)=A13a‾454ω06+A1A2a‾412ω04+A3a‾415ω02f_{4}^{(3)}=\frac{A_{1}^{3} a^{4}}{54 \omega_{0}^{6}} + \frac{A_{1} A_{2} a^{4}}{12 \omega_{0}^{4}} + \frac{A_{3} a^{4}}{15 \omega_{0}^{2}},\qquad f_{-4}^{(3)}=\frac{A_{1}^{3} \overline{a}^{4}}{54 \omega_{0}^{6}} + \frac{A_{1} A_{2} \overline{a}^{4}}{12 \omega_{0}^{4}} + \frac{A_{3} \overline{a}^{4}}{15 \omega_{0}^{2}}f4(3)​=54ω06​A13​a4​+12ω04​A1​A2​a4​+15ω02​A3​a4​,f−4(3)​=54ω06​A13​a4​+12ω04​A1​A2​a4​+15ω02​A3​a4​

规律

(查看输出结果)

  • ω2k≠0,ω2k+1=0\omega_{2k}\ne 0,\omega_{2k+1}=0ω2k​=0,ω2k+1​=0
  • 圆频率修正的大小和振幅相关,而线性振子的圆频率和振幅无关。这是非线性振子的特性
  • 阶数kkk与频谱修正项关系:
    • 共轭:fn(k)=f−n(k)‾f_n^{(k)}=\overline{f_{-n}^{(k)}}fn(k)​=f−n(k)​​
    • k阶的频谱修正fn(k)f_n^{(k)}fn(k)​只对有限个nnn不为0,且k越大不为零的数量越多
      • k=1:n=0,±2k=1: n=0,\pm 2k=1:n=0,±2
      • k=2:n=±3k=2: n=\pm 3k=2:n=±3
      • k=3:n=0,±2,±4k=3: n=0,\pm 2,\pm 4k=3:n=0,±2,±4
    • 奇偶性:k为奇数时,存在对f0f_0f0​(也就是平衡位置)的修正。这是因为谐振子该阶项对应的受力始终沿着一个方向;k为偶数时对f0f_0f0​的修正为0
  • 非线性项AiA_iAi​对频谱修正的关系:
    • AkA_kAk​对频谱的影响从第kkk阶开始出现,会出现无限多包含AkA_kAk​的项

分别代入各AiA_iAi​的情况

一些性质:

  • 不同AiA_iAi​产生的频谱不能叠加(因为存在A1A2A_1A_2A1​A2​这样的项)
  • A1A_1A1​对各阶修正频率的影响:
    • A2kA_{2k}A2k​只影响ω2k,ω2k+2,⋯\omega_{2k},\omega_{2k+2},\cdotsω2k​,ω2k+2​,⋯
    • A2k+1A_{2k+1}A2k+1​只影响ω2k+1,ω2k+3,⋯\omega_{2k+1},\omega_{2k+3},\cdotsω2k+1​,ω2k+3​,⋯
  • A1A_1A1​对各阶修正频谱的影响:
    • A2kA_{2k}A2k​对所有阶数≥2k\ge 2k≥2k的fnkf_n^{k}fnk​有影响
    • A2k+1A_{2k+1}A2k+1​只影响奇数阶项:f2k+1,f2k+3,⋯f^{2k+1},f^{2k+3},\cdotsf2k+1,f2k+3,⋯