Skládání kmitání (resp. vlnění)

Následující aplet umožňuje názorně pochopit skládání kmitání (resp. vlnění). Pomocí posuvníků lze měnit amplitudy, frekvence a počáteční fáze dvou kmitání (resp. vlnění) a v závislosti na tomto nastavení se vykreslí jak grafy skládaných kmitání (resp. vlnění), tak graf výsledného kmitání (resp. vlnění).
Osy grafů nejsou popsány, protože aplet může být použit jak pro skládání kmitavých pohybů, u kterých má smysl vyšetřovat závislost okamžité výchylky na čase, tak pro skládání dvou vlnění (např. interference), u kterých má smysl vyšetřovat jak graf závislosti okamžité výchylky na čase, tak graf závislosti okamžité výchylky na souřadnici. Tento nedostatek si jistě uživatel uvědomí a příslušné popisky na osách si dodá dle zadané situace.
Vedle posuvníků jsou vypsány hodnoty daných veličin v jejich základních jednotkách, tj. amplituda v metrech, frekvence v hertzích a počáteční fáze v radiánech.

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, 2008

Příprava pro vykreslení grafu

jmenosouboru="kmitani_skladani_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

rozmerobrazku=270;

ym0=1;yminimalni=0.1;ymaximalni=2;deltaym=0.1;
f0=1;fmin=0.1;fmax=1.5;deltaf=0.1;
fi0=0;fimin=0;fimax=π;deltafi=(π/10);
t1=0;t2=(1.5/fmin);

tloustka=0.007;

barva=Black;
barva1=Blue;
barva2=Red;
barva3=Orange;

pisinfo=StringJoin[ToString[Style["y",barva3],StandardForm],ToString[Style[" = ",barva],StandardForm],ToString[Style["(Subscript[y, 1])",barva1],StandardForm],ToString[Style[" + ",barva],StandardForm],ToString[Style["(Subscript[y, 2])",barva2],StandardForm]];
SkladaniKmitani=Manipulate[
y1[t_]:=ym1 Sin[2π f1 t+fi1];
y2[t_]:=ym2 Sin[2 π f2 t+fi2];
y[t_]:=y1[t]+y2[t];

grafik=Grid[{
{Show[
Plot[y1[t],{t,t1,t2},PlotStyle->{barva1,Thickness[tloustka]}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-ymaximalni,ymaximalni}},ImageSize->rozmerobrazku],
Show[
Plot[y2[t],{t,t1,t2},PlotStyle->{barva2,Thickness[tloustka]}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-ymaximalni,ymaximalni}},ImageSize->rozmerobrazku]},
{Show[
Plot[y[t],{t,t1,t2},PlotStyle->{barva3,Thickness[tloustka]}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-2ymaximalni,2ymaximalni}},ImageSize->rozmerobrazku],
Show[
Graphics[{
Text[Style[pisinfo,40,barva,FontFamily->Times],{((t1+t2)/2),0},{Center,Center}]}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-2ymaximalni,2ymaximalni}},ImageSize->rozmerobrazku]}}
],

{{ym1,ym0,Style["(Subscript[y, m1])",15,barva1]},yminimalni,ymaximalni,deltaym,Appearance->"Labeled"},
{{f1,f0,Style["(Subscript[f, 1])",15,barva1]},fmin,fmax,deltaf,Appearance->"Labeled"},
{{fi1,fi0,Style["(Subscript[φ, 1])",15,barva1]},fimin,fimax,deltafi,Appearance->"Labeled"},
Delimiter,
{{ym2,ym0,Style["(Subscript[y, m2])",15,barva2]},yminimalni,ymaximalni,deltaym,Appearance->"Labeled"},
{{f2,f0,Style["(Subscript[f, 2])",15,barva2]},fmin,fmax,deltaf,Appearance->"Labeled"},
{{fi2,fi0,Style["(Subscript[φ, 2])",15,barva2]},fimin,fimax,deltafi,Appearance->"Labeled"},
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, 2008",10,Black,FontFamily->Times],"",Style["Skládání kmitání (resp. 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.

SkladaniKmitani