К основному контенту

Визуализация законов преломления света

На рисунке представлена визуализация законов Снеллиуса и Френеля на границе воздуха (n = 1) и воды (n = 1.33).
Линиями показаны направления преломления, цветом обозначен коэффициент отражения.



Обозначим через \(\alpha\) угол между нормалью к поверхности раздела двух сред и падающим лучом, через \(\beta\) -- угол между нормалью и преломленным лучом.
Связь между углами \(\alpha\) и \(\beta\) выражается хорошо известным законом Снеллиуса: \[\frac{\sin\alpha}{\sin\beta} = \frac{n_2}{n_1}.\] Здесь \(n_1 = 1\) -- показатель преломления воздуха, \(n_2 = 1.33\) -- показатель преломления воды.
Из неравенства \(\sin\alpha \leq 1\) вытекает \(\sin\beta \leq \dfrac{n_1}{n_2}\).
При прохождении света из воды в воздух под углом падения \(\beta\), \(\sin\beta > \dfrac{n_1}{n_2}\), имеет место эффект полного внутреннего отражения.

При переходе светового луча из среды \(i\) в среду \(j\) при угле падения \(\alpha\), \(\cos\alpha = \nu\), угол преломления равен \(\beta\), \(\cos\beta = \psi_{ij}(\nu)\), а коэффициент отражения (доля отраженного излучения) равен \(R_{ij}(\nu)\).
Согласно законам Снеллиуса и Френеля, \[\psi_{ij}(\nu) = \begin{cases}
\sqrt{1 - n_{ij}^2(1 - \nu^2)}, & \mbox{если}\;\; 1 - n_{ij}^2(1 - \nu^2) > 0, \\
0, & \mbox{иначе},
\end{cases}\] \[ R_{ij}(\nu) = \frac{1}{2}\left\{ \left[ \frac{\psi_{ij}(\nu) - n_{ij}\nu}{\psi_{ij}(\nu) + n_{ij}\nu} \right]^2 + \left[ \frac{n_{ij}\psi_{ij}(\nu) - \nu}{n_{ij}\psi_{ij}(\nu) + \nu} \right]^2 \right\}, \] где \(n_{ij} = n_i/n_j\).

psi[nij_, nu_] := Sqrt[Max[1 - nij^2 (1 - nu^2), 0]];

R[nij_, nu_] := 0.5*(
    ((psi[nij, nu] - nij*nu)/(psi[nij, nu] + nij*nu))^2
     + ((nij*psi[nij, nu] - nu)/(nij*psi[nij, nu] + nu))^2
    );

n1 = 1; n2 = 1.33; n12 = n1/n2;

x[nu_] := Sqrt[1 - nu^2]; y[nu_] := nu;

M = 6;

nuk[k_] := Cos[Pi*k/(2*M)];

DrawLine[xx_, yy_] := ParametricPlot[{xx*t, yy*t}, {t, 0, 1}];

Show[
 ParametricPlot[{{x[nu], y[nu]}, {-x[nu], 
    y[nu]}, {x[
     psi[n12, nu]], -y[psi[n12, nu]]}, {-x[psi[n12, nu]], -y[
      psi[n12, nu]]}}, {nu, 0, 1}, PlotStyle -> Thickness[0.02], 
  ColorFunction -> Function[{x, y, nu}, Hue[R[n12, nu]]]],
 Table[DrawLine[x[nuk[k]], y[nuk[k]]], {k, 0, M}],
 Table[DrawLine[-x[nuk[k]], y[nuk[k]]], {k, 0, M}],
 Table[DrawLine[x[psi[n12, nuk[k]]], -y[psi[n12, nuk[k]]]], {k, 0, M}],
 Table[DrawLine[-x[psi[n12, nuk[k]]], -y[psi[n12, nuk[k]]]], {k, 0, 
   M}]]

Угол преломления в зависимости от угла падения:

Plot[ArcCos[psi[n12, Cos[alpha/180*Pi]]]/Pi*180, {alpha, 0, 90}, 
 PlotRange -> All]


Коэффициент отражения в зависимости от угла падения:

Plot[R[n12, Cos[alpha/180*Pi]], {alpha, 0, 90}, PlotRange -> All]


Убедимся в соответствии коэффициентов отражения при прохождении луча из воздуха в воду и обратно.

Plot[{R[n12, nu], R[n2/n1, psi[n12, nu]]}, {nu, 0, 1}, PlotRange -> All]


Комментарии