摄动理论求解非线性单摆振动问题

概念

扰动理论也称摄动理论,求解微分方程的一种方法,精确解=具有精确解的简单部分+不具有精确解的微扰部分,扰动理论的精确解通常会表示为一个微小参数的幂级数。
扰动分析分为:regular perturbation与singular perturbation,扰动将一个不可解问题作为可解问题的扰动,奇异摄动问题中不可解问题与可解问题的解有一个本质的区别。当 ϵ → 0 \epsilon \rightarrow 0 ϵ0,解 u ( x , ϵ ) u(x,\epsilon) u(x,ϵ)一致收敛converge uniformly,则为regular perturbation,反之为singular perturbation。

regular perturbation, u = Σ ϵ m u m ( t ) u=\Sigma \epsilon^m u_m(t) u=Σϵmum(t)
singular perturbation, u ≈ Σ ϵ m u m ( t ) u\approx \Sigma \epsilon^m u_m(t) uΣϵmum(t)

扰动理论 
http://www.math.unm.edu/~vageli/courses/Ma570/text.pdf
https://www.sjsu.edu/faculty/watkins/perturbregsing.htm
物理学咬文嚼字之五十七 简并

非线性单摆振动问题

方程: θ ′ ′ + w 0 2 s i n ( θ ) = 0 , w 0 2 = g / l \theta'' + w_0^2 sin(\theta) = 0, w_0^2 = g/l θ+w02sin(θ)=0,w02=g/l
条件: θ ( 0 ) = α , θ ′ ( 0 ) = 0 \theta(0) = \alpha, \theta'(0) = 0 θ(0)=α,θ(0)=0
将问题尺度化,令 u = θ / α u = \theta / \alpha u=θ/α
方程: u ′ ′ + w 0 2 / α s i n ( u α ) = 0 u'' + w_0^2/ \alpha sin(u \alpha) = 0 u+w02/αsin(uα)=0
条件: u ( 0 ) = 1 , u ′ ( 0 ) = 0 u(0) = 1, u'(0) = 0 u(0)=1,u(0)=0

[1]赵炳林. 应用叠代法求单摆周期公式[J]. 大学物理, 1984, 1(5).
[2]许玉兴. 奇异摄动理论导数展开法在常微分方程中的应用[J]. 大学数学, 1987(04):33-35+12.
[3]程荣龙,宫昊,许永红.非线性单摆周期的摄动解法[J].蚌埠学院学报,2017,6(06):39-41.
[4]叶慧群.单摆周期近似解法综述[J].浙江师范大学学报(自然科学版),2004(03):34-38.
[5]黄秀兰.单摆周期近似解的讨论[J].云南师范大学学报(自然科学版),1995(02):38-45.
[6]钱伟长. 奇异摄动理论及其在力学中的应用[M]. 科学出版社, 1981.
[7] Nayfeh A H . Introduction to Perturbation Techniques[J]. Journal of Mathematical Physics, 1962, 3(5):936-945.

迭代法[1]

u ′ ′ + w 0 2 / α s i n ( u α ) + w 0 2 u − w 0 2 u = 0 u'' + w_0^2/ \alpha sin(u \alpha) + w_0^2 u - w_0^2 u = 0 u+w02/αsin(uα)+w02uw02u=0
u ′ ′ + w 0 2 u = w 0 2 ( u − 1 / α s i n ( u α ) ) u'' + w_0^2 u = w_0^2( u - 1/\alpha sin(u \alpha) ) u+w02u=w02(u1/αsin(uα))

将上式右端泰勒展开
u − 1 / α s i n ( u α ) = u − 1 / α ( u α − ( u α ) 3 / 3 ! + ( u α ) 5 / 5 ! − ( u α ) 7 / 7 ! + . . . ) = u 3 α 2 / 6 − u 5 α 4 / 60 + u 7 α 6 / 5040 − . . . u - 1/\alpha sin(u \alpha) = u - 1/\alpha(u\alpha - (u\alpha)^3/3! + (u\alpha)^5/5! - (u\alpha)^7/7! + ...) = u^3\alpha^2 /6 - u^5\alpha^4 /60 + u^7\alpha^6 /5040 - ... u1/αsin(uα)=u1/α(uα(uα)3/3!+(uα)5/5!(uα)7/7!+...)=u3α2/6u5α4/60+u7α6/5040...

u − 1 / α s i n ( u α ) = Σ [ ( − 1 ) n + 1 α 2 n u 2 n + 1 / ( 2 n + 1 ) ! ] u - 1/\alpha sin(u \alpha) = \Sigma[(-1)^{n+1}\alpha^{2n} u^{2n+1}/(2n+1)!] u1/αsin(uα)=Σ[(1)n+1α2nu2n+1/(2n+1)!]
假设 α \alpha α很小, ϵ = α 2 \epsilon=\alpha^2 ϵ=α2
u − 1 / α s i n ( u α ) = u 3 ϵ / 6 u - 1/\alpha sin(u \alpha) = u^3 \epsilon /6 u1/αsin(uα)=u3ϵ/6
u ′ ′ + w 0 2 u = w 0 2 u 3 ϵ / 6 , 式 1 u'' + w_0^2 u = w_0^2 u^3 \epsilon /6, 式1 u+w02u=w02u3ϵ/6,1

设解为 u = Σ ϵ m u m ( t ) u=\Sigma \epsilon^m u_m(t) u=Σϵmum(t)

非齐次方程的通解 = 齐次的通解 + 非齐次的特解

第0次迭代,将 u = u 0 u = u_0 u=u0带入式1
u 0 ′ ′ + w 0 2 u 0 = 0 u_0'' + w_0^2 u_0 = 0 u0+w02u0=0
求齐次方程的通解,得 u 0 u_0 u0,将其带入式1的右端,得
u ′ ′ + w 0 2 u = w 0 2 u 0 3 ϵ / 6 , 式 2 u'' + w_0^2 u = w_0^2 u_0^3 \epsilon /6, 式2 u+w02u=w02u03ϵ/6,2

第1次迭代,将 u = u 0 + u 1 u = u_0 + u_1 u=u0+u1带入式2
u 1 ′ ′ + w 0 2 u 1 = w 0 2 u 0 3 / 6 u_1'' + w_0^2 u_1 = w_0^2 u_0^3 /6 u1+w02u1=w02u03/6
求非齐次方程的特解,得 u 1 u_1 u1,将 u 0 + u 1 u_0 + u_1 u0+u1带入式1的右端,得
u ′ ′ + w 0 2 u = w 0 2 ( u 0 + u 1 ) 3 ϵ / 6 , 式 3 u'' + w_0^2 u = w_0^2 (u_0+u_1)^3 \epsilon /6, 式3 u+w02u=w02(u0+u1)3ϵ/6,3

第2次迭代,将 u = u 0 + u 1 + u 2 u = u_0 + u_1 + u_2 u=u0+u1+u2带入式3
求非齐次方程的特解,得 u 2 u_2 u2

最终解为 u = Σ ϵ m u m ( t ) u=\Sigma \epsilon^m u_m(t) u=Σϵmum(t),只取到第1次迭代,则 u = u 0 + ϵ u 1 u=u_0 + \epsilon u_1 u=u0+ϵu1
再将初始条件带入 u u u得到最终解,但结果并不保证一定收敛。

下面是我的两次迭代,但sympy算出来的文章中的不一样

# -*- coding: utf-8 -*-
"""
@time: 2021-08-27 下午 09:41
@author: leslie lee
"""
import sympy as sp

# # -------------------------------ODE1
# # 自变量
# t = sp.symbols('t')
# # 常数
# w0 = sp.symbols('w0')
# # 因变量
# u0 = sp.Function('u0')
# # ODE
# eq = sp.Eq(u0(t).diff(t,2) + w0**2*u0(t), 0)
# # initial conditions
# ics = {u0(0): 1, u0(t).diff(t).subs(t,0): 0}
# # Solve
# print(sp.dsolve(eq, u0(t), ics = ics))
# # print(sp.dsolve(eq, u0(t)))

# -------------------------------ODE2
# 自变量
t = sp.symbols('t')
# 常数
w0 = sp.symbols('w0')
# 因变量
u1 = sp.Function('u1')
# ODE
eq = sp.Eq(u1(t).diff(t,2) + w0**2*u1(t), w0**2*sp.cos(w0*t)**3/6)
# initial conditions
ics = {u1(0): 0, u1(t).diff(t).subs(t,0): 0}
# Solve
print(sp.sympify(sp.dsolve(eq, u1(t), ics = ics)))

摄动法[2]

导数展开法[7]
方程的解 u ( t ) u(t) u(t),根据不同的时间尺度 T 0 = t , T 1 = ϵ t , . . . , T n = ϵ n t T_0 = t, T_1 = \epsilon t, ..., T_n = \epsilon^n t T0=t,T1=ϵt,...,Tn=ϵnt可将解变为 u ^ ( T 0 , T 1 , T 2 , . . . , T n ) \hat{u}(T_0,T_1,T_2,...,T_n) u^(T0,T1,T2,...,Tn) ϵ \epsilon ϵ为小参数
d d t = ∂ ∂ T 0 + ∂ ∂ T 1 + ∂ ∂ T 2 + . . . \frac{d}{dt} = \frac{\partial}{\partial T_0} + \frac{\partial}{\partial T_1} + \frac{\partial}{\partial T_2} + ... dtd=T0+T1+T2+...
d 2 d t 2 = ∂ 2 ∂ T 0 2 + 2 ϵ ∂ 2 ∂ T 0 ∂ T 1 + ϵ 2 ( 2 ∂ 2 ∂ T 0 T 2 + ∂ 2 ∂ T 1 2 ) + . . . \frac{d^2}{dt^2} = \frac{\partial^2}{\partial T_0^2} + 2\epsilon \frac{\partial^2}{\partial T_0 \partial T_1} +\epsilon^2 (2\frac{\partial^2}{\partial T_0 T_2} + \frac{\partial^2}{\partial T_1^2}) + ... dt2d2=T022+2ϵT0T12+ϵ2(2T0T22+T122)+...

u ′ ′ + w 0 2 u = w 0 2 u 3 ϵ / 6 u'' + w_0^2 u = w_0^2 u^3 \epsilon /6 u+w02u=w02u3ϵ/6
将导数展开带入方程
d 2 u d t 2 = ∂ 2 u ∂ T 0 2 + 2 ϵ ∂ 2 u ∂ T 0 ∂ T 1 + ϵ 2 ( 2 ∂ 2 u ∂ T 0 T 2 + ∂ 2 u ∂ T 1 2 ) \frac{d^2u}{dt^2} = \frac{\partial^2u}{\partial T_0^2} + 2\epsilon \frac{\partial^2u}{\partial T_0 \partial T_1} +\epsilon^2 (2\frac{\partial^2u}{\partial T_0 T_2} + \frac{\partial^2u}{\partial T_1^2}) dt2d2u=T022u+2ϵT0T12u+ϵ2(2T0T22u+T122u)
w 0 2 u + ∂ 2 u ∂ T 0 2 + 2 ϵ ∂ 2 u ∂ T 0 ∂ T 1 + ϵ 2 ( 2 ∂ 2 u ∂ T 0 T 2 + ∂ 2 u ∂ T 1 2 ) = w 0 2 u 3 ϵ / 6 , 式 1 w_0^2 u + \frac{\partial^2u}{\partial T_0^2} + 2\epsilon \frac{\partial^2u}{\partial T_0 \partial T_1} +\epsilon^2 (2\frac{\partial^2u}{\partial T_0 T_2} + \frac{\partial^2u}{\partial T_1^2}) = w_0^2 u^3 \epsilon /6, 式1 w02u+T022u+2ϵT0T12u+ϵ2(2T0T22u+T122u)=w02u3ϵ/6,1
解的形式为 u = u 0 + ϵ u 1 + ϵ 2 u 2 u=u_0 + \epsilon u_1 + \epsilon^2 u_2 u=u0+ϵu1+ϵ2u2
将解带回式1,并令 ϵ \epsilon ϵ同次幂的系数等于0,则可以得到三个常微分方程
ϵ 0 \epsilon^0 ϵ0阶,关于 u 0 u_0 u0的常微分方程1
ϵ 1 \epsilon^1 ϵ1阶,关于 u 0 u_0 u0 u 1 u_1 u1的常微分方程2
ϵ 2 \epsilon^2 ϵ2阶,关于 u 0 u_0 u0 u 1 u_1 u1 u 2 u_2 u2的常微分方程3
求解方程1的通解得到 u 0 u_0 u0,将 u 0 u_0 u0带入方程2求特解得到 u 1 u_1 u1,将 u 0 u_0 u0 u 1 u_1 u1带入方程3求特解得到 u 2 u_2 u2
最终解为 u = u 0 + ϵ u 1 + ϵ 2 u 2 u=u_0 + \epsilon u_1 + \epsilon^2 u_2 u=u0+ϵu1+ϵ2u2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值