Index lomu

Opticky husté látky

Následující aplet zobrazuje rozhraní vzduch a opticky hustá látka při lomu světla. Světlo je zde charakterizováno jako v paprskové optice šipkou. Hlavním účelem tohoto apletu je znázornění závislosti indexu lomu látky na vlnové délce (frekvenci) světla. V rozbalovacím menu je možné si vybrat jeden z prvků, jež bude představovat opticky husté prostředí.

Je nutno upozornit na nepřesnost, k níž dochází v tomto apletu. Vztah zde použitý pro výpočet indexu lomu opticky hustého prostředí platí pro nízké frekvence. Rozmezí λ je ale vysokofrekvenční, z důvodu lepšího zobrazení změn indexu lomu v závislosti na vlnové délce (frekvenci). Takto si lze danou situaci lépe představit, ačkoli je fyzikálně nepřesná.

Tlačítko Uložit obrázek uloží aktuální stav animace do složky, v níž je uložen tento notebook, pod názvem uloženým v proměnné FileName, k čemuž se navíc připojí i pořadové číslo ukládaného obrázku. Nutno si uvědomit, že se při každém spuštění apletu obrázky začínají číslovat od jedné, a tak může dojít k přepsání obrázků předchozích.

Zdrojový kód

FileName="index_lomu_.jpg";
path=NotebookDirectory[];
saved=0;

c=299792458;
ε0=8.85 (10^(-12));
Qe=1.602*10^-19;
me=9.109*10^-31;

delka=10;
n1=1;

ρAg=14.71 (10^(-9));
ρCu=15.8 (10^(-9));
ρAu=20.11 (10^(-9));
ρAl=25 (10^(-9));
ρZn=54.55(10^(-9));
ρFe=87.1(10^(-9));
ρPb=193 (10^(-9));
ρHg=983.96(10^(-9));

Index=Manipulate[
ω=2π c/λ;
σ=(1/ρ);
n2=√((σ/(2ε0 ω)))(1-I);
n2Abs=Re[n2];
snell=((Sin[α Degree])/(Sin[βpom Degree]))==(n2Abs/n1);
reseni=Quiet[Solve[snell,βpom]];
If[reseni≠{},
{chyba=False,
β=βpom/.reseni[[1]],
If[Im[β]≠0,
chyba=True,
""]},
β=0];
picture=Graphics[{
Orange,Arrow[{{delka*Cos[(90+α) Degree],delka*Sin[(90+α) Degree]},{0,0}}],
If[α==β,Text[""],Arrow[{{0,0},{delka*Cos[(90-α) Degree],delka*Sin[(90-α) Degree]}}]],
If[chyba,Text[Style["Lomený paprsek neexistuje - došlo k totálnímu odrazu!",14,Red,FontFamily->Times,Bold],{0,-5},{Center,Center}],{Red,Arrow[{{0,0},{delka*Cos[(270+β) Degree],delka*Sin[(270+β) Degree]}}]}],
Black,Line[{{-1.1*delka,0},{1.1*delka,0}}],
Dashed,Line[{{0,1.1*delka},{0,-1.1*delka}}],
If[showindex,{
Text[Style[StringJoin["(Subscript[n, 1]) = ",ToString[n1]],20,Blue,FontFamily->Times,Italic],{-delka+2,delka},{Center,Center}],
Text[Style[StringJoin["(Subscript[n, 2]) = ",ToString[Re[n2]]],20,Blue,FontFamily->Times,Italic],{-delka,-delka},{Left,Center}]},Text[""]]}
],
{{α,10,Style["Úhel dopadu",14,FontFamily->Times,Italic,Darker[Green,.6]]},0,90},{{λ,(10^(-9)),Style["λ",14,FontFamily->Times,Italic,Darker[Red,.3]]},(10^(-10)),(10^(-8))},
Delimiter,
{{ρ,ρCu,Style["Prvek",14,FontFamily->Times]},{ρAl->"Al",ρFe->"Fe",ρCu->"Cu",ρZn->"Zn",ρAg->"Ag",ρAu->"Au",ρHg->"Hg",ρPb->"Pb"}, ControlType->PopupMenu},
Delimiter,
{{showindex,True,Style["zobrazit indexy lomu",13,Black,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Button["Uložit obrázek",{saved=saved+1,Export[StringInsert[StringJoin[path,FileName],ToString[saved],-5],picture]},ImageSize->{200,Automatic}],
ControlPlacement->Left,
FrameLabel->{Style["© Zbyněk Pitra, DMP - Elektromagnetické záření 2008/2009",8,Black,FontFamily->Times],"",Style["Index lomu",22,Black,FontFamily->Times],""}];

Spuštění apletu - Klikněte do následující buňky, stiskněte Shift+Enter a v dotazu, jež se zobrazí stiskněte tlačítko Yes.

Index