\usepackagecancel

Return to 弱重力場中の光の経路の近似解

弱重力場中の光の経路の近似解:別解法

シュバルツシルト時空中の光の経路を決める式を2階微分方程式の形にして解く。

光の経路を決める式

(dudϕ)2=1b2u2+rg(u31b3)

両辺を ϕ で微分して2階微分方程式の形にする。

2dudϕd2udϕ2=2ududϕ+3rgu2dudϕ  d2udϕ2=u+32rgu2

初期条件

1階微分方程式のときには1個の積分定数を決めるための初期条件はひとつでよくて,ϕ=π2 のとき,u=1b とした。2階微分方程式の場合は,2個の積分定数を決めるために初期条件もふたつ必要となるから,もとの1階微分方程式の形から以下を採用する。

  • ϕ=π2 のとき,u=1b および,
  • ϕ=π2 のとき,dudϕ=0

rg のゼロ次解

rg がかかった項を無視したときの解を u0 とおくと

d2u0dϕ2=u0

初期条件 ϕ=π2 のとき,u0=1bdu0dϕ=0 より

u0=sinϕb

rg の1次解

u=u0+rgbu1 とおいて微分方程式に代入し,rg の1次の項を取り出すと

d2u1dϕ2+u1=32bsin2ϕ

この非同次方程式の解(同次方程式の基本解と非同次方程式の特殊解の和)に初期条件を課す。

u 全体に対する初期条件は ϕ=π2 のとき,u=1bdudϕ=0 であり,これは u1 に対しては,u1=0,du1dϕ=0 となるから,解は

u1=12b(2sinϕsin2ϕ)

したがって rg の1次までの解は

u=u0+rgbu1=sinϕb+rg2b2(2sinϕsin2ϕ)


Maxima で非同次方程式を解いてみる

In [1]:
eq: 'diff(u1, phi, 2) + u1 = 3/(2*b) * sin(phi)**2;
Out[1]:
(%o1)d2dφ2u1+u1=3sin2φ2b
In [2]:
sol: ode2(eq, u1, phi);
Out[2]:
(%o2)u1=cos(2φ)+34b+%k1sinφ+%k2cosφ

初期条件 ϕ=π2u1=0,du1dϕ=0 を課すと…

In [3]:
sol1: ic2(sol, phi = %pi/2, u1 = 0, 'diff(u1, phi) = 0);
Out[3]:
(%o3)u1=cos(2φ)+34bsinφ2b

cos2ϕ12sin2ϕ と置き換えて…

In [4]:
ev(sol1, cos(2*phi)=1 - 2*sin(phi)**2), ratsimp;
Out[4]:
(%o4)u1=sin2φ+sinφ22b

SymPy で非同次方程式を解いてみる

モジュールの import

In [1]:
from sympy.abc import *
from sympy import *
In [2]:
u1 = Function('u1')

eq = Eq(Derivative(u1(phi), phi, 2) + u1(phi), 
        Rational(3,2) * sin(phi)**2/b
)
eq
Out[2]:
u1(ϕ)+d2dϕ2u1(ϕ)=3sin2(ϕ)2b
In [3]:
dsolve(eq, u1(phi), 
       ics = {u1(phi).subs(phi, pi/2):0,          # u1(pi/2) = 0
              diff(u1(phi), phi).subs(phi, pi/2):0 # d u1/d phi(pi/2) = 0
             })
Out[3]:
u1(ϕ)=sin(ϕ)2b+cos2(ϕ)2b+12b
In [4]:
factor(_)
Out[4]:
u1(ϕ)=sin(ϕ)+cos2(ϕ)+12b
In [5]:
_.subs(cos(phi)**2, 1 - sin(phi)**2)
Out[5]:
u1(ϕ)=sin2(ϕ)sin(ϕ)+22b