Vznik stojatého vlnění

Následující interaktivní notebook umožňuje názorně pochopit vznik příčného stojatého vlnění, které vzniká interferencí dvou vlnění postupných.
V notebooku lze pomocí posuvníků měnit:
	amplitudu (Subscript[y, m]) obou vlnění;
	periodu T kmitání zdroje vlnění;
	velikost rychlosti v, kterou se vlnění daným prostorem šíří.
Posuvníkem t zobrazíme postupně průběh vlnění.

Volitelně pak lze zobrazit:
	první vlnění;
	druhé vlnění;
	stojaté vlnění, které vzniká interferencí obou výše zmíněných vlnění;
	zdroje vlnění;
	kmitny vlnění;
	uzly vlnění.

Tlačítkem Ulož obrázek se uloží právě zobrazené "bílé" okno do aktuální složky (složka, v níž je uložen tento notebook) pod jménem, které je uloženo v proměnné jmenosouboru. K tomuto jménu souboru je při opakovaném ukládání grafu přidáváno pořadové číslo.
Pozor! Při každém spuštění tohoto apletu se začínají soubory číslovat opět od jedné! Tak může dojít k přepsání minule uložených obrázků.

© Jaroslav Reichl, 2011

Příprava pro vykreslení grafu

ClearAll["Global`*"];
jmenosouboru="vlneni_stojate_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

x1=-10;x2=-x1;
y1=-10;y2=-y1;
stredy=0;

ym0=1;ymmin=0.1;ymmax=2;deltaym=0.1;
perioda0=1;periodamin=0.1;periodamax=5;deltaperioda=0.1;
v0=1;vmin=0.5;vmax=10;deltav=0.1;
t0=0;tmin=0;tmax=2periodamax;deltat=0.001;
xmin=0;xmax=10;

tloustka=0.005;
velikostbodu=0.025;
velikostpisma=15;

barva=Black;
barvakrivky1=Blue;
barvakrivky2=Darker[Green];
barvavysledku=Red;
barvazdroje1=Darker[barvakrivky1,0.2];
barvazdroje2=Darker[barvakrivky2,0.2];
barvakmiten=Magenta;
barvauzlu=Orange;

StojateVlneni=Manipulate[Deploy[
vlna1[t_,x_]:=ym Sin[2π((t/perioda)-(x/(perioda rychlost)))];
vlna2[t_,x_]:=ym Sin[2π((t/perioda)-((xmax-x)/(perioda rychlost)))];
vlna[t_,x_]:=vlna1[t,x]+vlna2[t,x];
If[cas rychlost≤xmax,
xmaxgraf=cas rychlost,
xmaxgraf=xmax];
xkmitna=(xmax/2);
pocetkmiten=Floor[((xmaxgraf-(xmax-xmaxgraf))/(perioda rychlost))];
pocetuzlu=Floor[((xmaxgraf-(xmax-xmaxgraf))/(perioda rychlost))-(1/2)];
kmitny=Table[Point[{xkmitna+((perioda rychlost)/2) i,stredy}],{i,-pocetkmiten,pocetkmiten,1}];
uzly=Table[Point[{xkmitna+((perioda rychlost)/4)+((perioda rychlost)/2) i,stredy}],{i,-pocetuzlu-1,pocetuzlu,1}];
zdroj1=Point[{xmin,vlna1[cas,xmin]}];
zdroj2=Point[{xmax,vlna2[cas,xmax]}];

grafik=Show[
If[zobrazitkrivku1,
Plot[vlna1[cas,x],{x,xmin-0.001,xmaxgraf},PlotStyle->{barvakrivky1,Thickness[tloustka]}],
Plot[0,{t,0,0.01},PlotStyle->{barva,Thickness[0.001tloustka]}]],
If[zobrazitkrivku2,
Plot[vlna2[cas,x],{x,xmax-xmaxgraf,xmax+0.001},PlotStyle->{barvakrivky2,Thickness[tloustka]}],
Plot[0,{t,0,0.01},PlotStyle->{barva,Thickness[0.001tloustka]}]],
If[zobrazitvysledek∧xmaxgraf>xmax-xmaxgraf,
Plot[vlna[cas,x],{x,xmaxgraf,xmax-xmaxgraf},PlotStyle->{barvavysledku,Thickness[tloustka]}],
Plot[0,{t,0,0.01},PlotStyle->{barva,Thickness[0.001tloustka]}]],

Graphics[{
If[zobrazitzdroje∧zobrazitkrivku1,
{barvazdroje1,PointSize[velikostbodu],zdroj1},
Text[""]],
If[zobrazitzdroje∧zobrazitkrivku2,
{barvazdroje2,PointSize[velikostbodu],zdroj2},
Text[""]],
If[zobrazitkmitny,
{barvakmiten,PointSize[0.75velikostbodu],kmitny},
Text[""]],
If[zobrazituzly,
{barvauzlu,PointSize[0.75velikostbodu],uzly},
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,AxesOrigin->{0,0},AxesLabel->{Style["x",velikostpisma,barva,FontFamily->Times],Style["y",velikostpisma,barva,FontFamily->Times]},PlotRange->{{tmin,tmax},{-1.2ymmax,1.2ymmax}},Ticks->None,ImageSize->500
]],

{{ym,ym0,Style["(Subscript[y, m])",15,barva]},ymmin,ymmax,deltaym},
{{perioda,perioda0,Style["T",15,barva,Italic]},periodamin,periodamax,deltaperioda},
{{rychlost,v0,Style["v",15,barva,Italic]},vmin,vmax,deltav},
Delimiter,
{{cas,t0,Style["t",15,barva,Italic]},tmin,tmax,deltat},
Delimiter,
Item[Style["Zobrazit",20,barva,FontFamily->Times,Bold,Underlined],Alignment->Left],
{{zobrazitkrivku1,True,Style["- 1. vlnění",15,barvakrivky1,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitkrivku2,True,Style["- 2. vlnění",15,barvakrivky2,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitvysledek,True,Style["- stojaté vlnění",15,barvavysledku,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitzdroje,True,Style["- zdroje vlnění",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
{{zobrazitkmitny,False,Style["- kmitny vlnění",15,barvakmiten,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazituzly,False,Style["- uzly vlnění",15,barvauzlu,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Button[" Ulož obrázek ",{pocetulozeni=pocetulozeni+1,Export[StringInsert[StringJoin[cesta,jmenosouboru],ToString[pocetulozeni],-5],grafik]},ImageSize->{100,Automatic}],
ControlPlacement->Left,
FrameLabel->{Style["© Jaroslav Reichl, 2011",10,Black,FontFamily->Times],"",Style["Vznik stojatého vlnění",25,Black,FontFamily->Times],""}];

Spuštění animace
Zpracujte běžným způsobem následující buňku a na dotaz, který se objeví, odpovězte ANO.

StojateVlneni