スネルの法則

以前二点間の最短経路は直線になるというお話をしました(変分法 その1
移動速度が異なる境界を跨ぐ場合,最短経路はどうなるか?というのが今回のお話です


今、2点A, Bの間に境界Oがあり、Oを挟んだ各領域の移動速度をそれぞれv1, v2とします
各領域内の経路が直線になるのは解っていますので,O上の点Xを通るとしてこれが最短経路となる場合を考えます
snell's law.wxm

点A, BおよびXの座標を適当に入力します(%i1〜3)
辺AX, 辺XBの距離をそれぞれ%o4, 5に示します
A→X→Bまでの移動にかかる時間Tを%o6に示します
フェルマーの原理より,Tをxで微分して求めた停留条件を%o7式に示します



AX, XBの角度をそれぞれθ1, θ2とすると%o8, 9を得ます
上2式を用いて%o7式を書き換えます(%o10)
左辺第1項を移項してまとめると%o11を得ます


この式をスネルの法則(Snell's law)あるいは屈折の法則と呼びます



適当な値を代入して具体的にプロットしてみます(%i12〜16)
比較のため,A→Bの直線経路をp1に代入します(%o17)
find_root関数でxを求めた結果を用いてA→X→Bの経路をp2に代入します(%o18)
p1を青線,p2を赤線として%t19にプロットします(凡例のnはv2/v1の意)
ここで x軸(y = 0)が境界Oを表しています


追記
スネルの法則は一般に2媒質間の光の伝播速度と入射角・屈折角の関係として説明されますヽ( ´ー`)ノ