Závislosti okamžité výchylky, velikosti rychlosti a velikosti zrychlení na čase

Následující aplet vykresluje časový průběh okamžité hodnoty výchylky harmonicky kmitajícího oscilátoru, velikosti jeho okamžité rychlosti a velikosti jeho okamžitého zrychlení. Pomocí posuvníků lze nastavit parametry harmonického kmitání:
	maximální výchylku (Subscript[y, m]);
	frekvenci kmitání f;
	počáteční fázi φ.

Volitelně lze zobrazit:
	časové průběhy závislosti velikosti okamžité rychlosti a velikosti okamžitého zrychlení;
	okamžitou hodnotu dané veličiny v čase t ve všech zobrazených grafech.

Není-li zaškrtnuta volba "okamžité hodnoty", nemá posuvník t žádný význam!


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

Příprava pro vykreslení grafu

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

rozmerobrazku=250;

ym0=1;yminimalni=0.1;ymaximalni=2;deltaym=0.1;
f0=0.2;fmin=0.05;fmax=0.4;deltaf=0.05;
fi0=0;fimin=-π;fimax=π;deltafi=(π/10);
t1=0;t2=(2/fmin);
t0=t1;tmin=t1;tmax=t2;deltat=0.05;

tloustka=0.007;
velikostbodu=0.04;

barva=Black;
barvay=Blue;
barvav=Red;
barvaa=Orange;
barvaym=Darker[Cyan];
barvaf=Brown;
barvafi=Darker[Green];
barvabodu=Magenta;

GrafyKmitani=Manipulate[
y[t_]:=ym Sin[2π f t+fi];
v[t_]:=y'[t];
a[t_]:=y''[t];

okamzitycas=Point[{cas,0}];
okamzitycasline=Line[{{cas,0},{cas,y[cas]}}];
okamzitycaslinev=Line[{{cas,0},{cas,v[cas]}}];
okamzitycaslinea=Line[{{cas,0},{cas,a[cas]}}];
pisrovnici="y = ";
If[ym≠1,
pisrovnici=StringJoin[pisrovnici,ToString[Style[ToString[ym],barvaym],StandardForm]]];
pisrovnici=StringJoin[pisrovnici,ToString[Style["sin (2π*",barva],StandardForm]];
If[f≠1,
pisrovnici=StringJoin[pisrovnici,ToString[Style[ToString[f],barvaf],StandardForm]]];
pisrovnici=StringJoin[pisrovnici,ToString[Style["*t",barva],StandardForm]];
If[fi≠0,
{If[fi>0,
znamenko=" + ",
znamenko=" - "],
pisrovnici=StringJoin[pisrovnici,znamenko,ToString[Style[ToString[Abs[fi],StandardForm],barvafi],StandardForm],")"]},
pisrovnici=StringJoin[pisrovnici,")"]];

grafik=Grid[{
{Show[
Plot[y[t],{t,t1,t2},PlotStyle->{barvay,Thickness[tloustka]},PlotRange->All,AxesLabel->{"(t/s)","(y/m)"}],
Graphics[{
If[zobrazitcas,
{{barvabodu,PointSize[velikostbodu],okamzitycas},
{barvabodu,Dashed,Thickness[0.75tloustka],okamzitycasline}},
Text[""]]
}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-ymaximalni,ymaximalni}},ImageSize->rozmerobrazku],
Show[
Graphics[{
If[zobrazitrovniciy,
Text[Style[pisrovnici,18,barva,FontFamily->Times],{0.05t2,0},{Left,Center}],
Text[""]]
}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-2ymaximalni,2ymaximalni}},ImageSize->rozmerobrazku]},
{Show[
If[zobrazitgrafrychlosti,
Plot[v[t],{t,t1,t2},PlotStyle->{barvav,Thickness[tloustka]},PlotRange->All,AxesLabel->{"(t/s)","(v/(m . (s^(-1))))"}],
Plot[0,{t,t1,t2},PlotStyle->{barva,Thickness[0.1tloustka]},PlotRange->All]],
Graphics[{
If[zobrazitcas&&zobrazitgrafrychlosti,
{{barvabodu,PointSize[velikostbodu],okamzitycas},
{barvabodu,Dashed,Thickness[0.75tloustka],okamzitycaslinev}},
Text[""]]
}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-ymaximalni,ymaximalni}},ImageSize->rozmerobrazku],
Show[
If[zobrazitgrafzrychleni,
Plot[a[t],{t,t1,t2},PlotStyle->{barvaa,Thickness[tloustka]},PlotRange->All,AxesLabel->{"(t/s)","(a/(m . (s^(-2))))"}],
Plot[0,{t,t1,t2},PlotStyle->{barva,Thickness[0.1tloustka]}]],
Graphics[{
If[zobrazitcas&&zobrazitgrafzrychleni,
{{barvabodu,PointSize[velikostbodu],okamzitycas},
{barvabodu,Dashed,Thickness[0.75tloustka],okamzitycaslinea}},
Text[""]]
}],
FormatType->StandardForm,AxesOrigin->{0,0},PlotRange->{{t1,t2},{-2ymaximalni,2ymaximalni}},ImageSize->rozmerobrazku]}}
],

{{ym,ym0,Style["(Subscript[y, m])",15,barvaym]},yminimalni,ymaximalni,deltaym},
{{f,f0,Style["f",15,barvaf]},fmin,fmax,deltaf},
{{fi,fi0,Style["φ",15,barvafi]},fimin,fimax,deltafi},
Delimiter,
{{cas,t0,Style["t",15,barvabodu]},tmin,tmax,deltat},
Delimiter,
Item[Style["Zobrazit:",15,barva,FontFamily->Times,Bold,Underlined]],
{{zobrazitrovniciy,True,Style["rovnici pro y",15,barvay,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitgrafrychlosti,False,Style["graf rychlosti",15,barvav,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitgrafzrychleni,False,Style["graf zrychlení",15,barvaa,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
{{zobrazitcas,False,Style["okamžité hodnoty",15,barvabodu,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, 2009",10,Black,FontFamily->Times],"",Style[StringJoin["Závislosti okamžité ",ToString[Style["výchylky",barvay],StandardForm],", ",ToString[Style["velikosti rychlosti",barvav],StandardForm]," a ",ToString[Style["velikosti zrychlení",barvaa],StandardForm]," na čase"],25,barva,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.

GrafyKmitani