На рисунке представлена визуализация законов Снеллиуса и Френеля на границе воздуха (n = 1) и воды (n = 1.33).
Линиями показаны направления преломления, цветом обозначен коэффициент отражения.Обозначим через α угол между нормалью к поверхности раздела двух сред и падающим лучом, через β -- угол между нормалью и преломленным лучом.
Связь между углами α и β выражается хорошо известным законом Снеллиуса: sinαsinβ=n2n1.
Здесь n1=1 -- показатель преломления воздуха, n2=1.33 -- показатель преломления воды.
Из неравенства sinα≤1 вытекает sinβ≤n1n2.
При прохождении света из воды в воздух под углом падения β, sinβ>n1n2, имеет место эффект полного внутреннего отражения.
При переходе светового луча из среды i в среду j при угле падения α, cosα=ν, угол преломления равен β, cosβ=ψij(ν), а коэффициент отражения (доля отраженного излучения) равен Rij(ν).
Согласно законам Снеллиуса и Френеля, ψij(ν)={√1−n2ij(1−ν2),если1−n2ij(1−ν2)>0,0,иначе,
Rij(ν)=12{[ψij(ν)−nijνψij(ν)+nijν]2+[nijψij(ν)−νnijψij(ν)+ν]2},
где nij=ni/nj.
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]
Комментарии
Отправить комментарий