微扰法求解非线性谐振子

问题简述

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

x(t)=n=fneinωtx(t)=\sum_{n=-\infty}^{\infty} f_n e^{in\omega t}

其中fnf_n是各项的振幅。

xnx^n的计算

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

x(t)=n=fneinωtx2(t)=n=mfnfmei(n+m)ωt=u=(n=fnfun)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*}
其中gu=(ff)u=n=fnfung_u = (f*f)_u=\sum_{n=-\infty}^{\infty} f_n f_{u-n}是序列fnf_n和自己的离散卷积
同理,xk(t)x^k(t)的计算就是kk个序列fnf_n作离散卷积,结果与fnf_n一样,也构成一个无穷序列。下面我们展示一个离散卷积的计算示例。

离散卷积

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

计算g=f(0)f(0)g=f^{(0)}*f^{(0)}:
g0=n=fn(0)fn(0)=2aag2=n=fn(0)f2n(0)=a2,g2=a2g_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\\

在此基础上计算h=f(0)f(0)f(0)=gf(0)h=f^{(0)}*f^{(0)} * f^{(0)}=g * f^{(0)}:
h3=n=gn(0)f3n(0)=a3,h3=n=gn(0)f3n(0)=a3h±1=3a2a,3aa2\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*}

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

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

计算

1.线性情形下的计算

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

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

当存在非线性项,且非线性项的能量远小于谐振子项时,我们假设它对fnf_nω\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 +\cdots

把它们和非线性项代入方程:
x¨+ω02x+Ax2+Bx3+=0\ddot{x} +\omega_0^2x + A x^2 + B x^3 +\cdots = 0
0=d2dt2n=(fn(0)+fn(1)+fn(2)+)ein(ω0+ω1+ω2+)t+ω02n=(fn(0)+fn(1)+fn(2)+)ein(ω0+ω1+ω2+)t+An=(f(0)+f(1)+f(2)+)(f(0)+f(1)+f(2)+)nein(ω0+ω1+ω2+)t+Bn=(fff)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}

以上式子可以简写成:
n=(n2ω2fn+ω02fn+A(ff)n+B(fff)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}=0
左侧为傅里叶展开式,右边是零,由einωte^{in\omega t}的完备性知,左侧各项系数为0:
n2ω2fn+ω02fn+A(ff)n+B(fff)n+=0n-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(ω0+ω1+ω2+)2(fn(0)+fn(1)+fn(2)+)+ω02(fn(0)+fn(1)+fn(2)+)+An=(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+1)ω02fn(0)=0,n\text{第零阶:}\quad(-n^2+1)\omega_0^2 f_n^{(0)}=0,\forall 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

第零阶

从第零阶中可以解出
{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}
由于x(t)x(t)为实数,fn=fnf_n=f_n^*,不妨设f1(0)=a,f1(0)=af_{ 1}^{(0)}=a,f_{ -1}^{(0)}=\overline{a}
这对应线性项:
x(t)=2Re(a)cosω0t2Im(a)sinω0tx(t)=2\mathrm{Re}(a) \cos \omega_0 t-2\mathrm{Im}(a) \sin \omega_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 n

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

更高阶的一般性分析

kk阶的方程可以写作:
(n2+1)ω02fn(k)2fn(0)n2ω0ωk+λn(ω02,A1,,Ak,ω1,,ωk1,fn(0),fn(1),,fn(k1))=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
在求第kk阶之前,我们已经求得了ω1,,ωk1,fn(0),,fn(k1)\omega_1,\cdots,\omega_{k-1},f_n^{(0)},\cdots,f_n^{(k-1)}的值,因此函数λn\lambda_n是已知项

计算自动化

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

一些重要的结果:

(下面设定f1(0)=a,f1(0)=af_1^{(0)}=a,f_{-1}^{(0)}=\overline{a})

第一阶

ω1=0\omega_1=0
f0(1)=2A1aaω02f_0^{(1)}=- \frac{2 A_{1} a \overline{a}}{\omega_{0}^{2}}
f2(1)=A1a23ω02,f2(1)=A1a23ω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}}

第二阶

ω2=a(10A12+9A2ω02)a6ω03\omega_2=\frac{a \left(- 10 A_{1}^{2} + 9 A_{2} \omega_{0}^{2}\right) \overline{a}}{6 \omega_{0}^{3}}
f3(2)=A12a312ω04+A2a38ω02,f3(2)=A12a312ω04+A2a38ω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}}

第三阶

ω3=0\omega_3=0
f0(3)=38A13a2a29ω06+10A1A2a2a2ω046A3a2a2ω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}}
f2(3)=59A13a3a54ω0631A1A2a3a12ω04+4A3a3a3ω02,f2(3)=59A13aa354ω0631A1A2aa312ω04+4A3aa33ω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}}
f4(3)=A13a454ω06+A1A2a412ω04+A3a415ω02,f4(3)=A13a454ω06+A1A2a412ω04+A3a415ω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}}

规律

(查看输出结果)

分别代入各AiA_i的情况

一些性质: