Tlumené kmitání

Následující aplet umožňuje zobrazit závislost okamžité výchylky na čase pro tlumený pružinový oscilátor. Pomocí posuvníků lze měnit:
	hmotnost m tělesa, které koná kmitavý pohyb;
	tuhost pružiny k;
	odpor prostředí (Subscript[k, 2]).
Dále lze pomocí posuvníků ovlivňovat počáteční podmínky daného oscilátoru, tj. jeho počáteční výchylku (Subscript[y, 0]) a velikost počáteční rychlosti (Subscript[v, 0]).

Volitelně lze zobrazit:
	informace o tlumení daného kmitání (zda je podkritické, kritické nebo nadkritické) či zda oscilátor tlumený není;
	předpis popisující závislost okamžité výchylky na čase při daných parametrech kmitá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, 2008

Příprava pro vykreslení grafu

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

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

m0=0.5; mmin=0.1;mmax=5;deltam=0.1;
k0=0.5; kmin=0.01;kmax=5;deltak=0.01;
k20=0.05; k2min=0.0;k2max=1;deltak2=0.01;
y00=1;y0min=0.5;y0max=5;deltay0=0.1;
v00=0;v0min=0;v0max=5;deltav0=0.1;

tloustka=0.005;
velikostbodu=0.02;

barva=Black;
barvagrafu=Blue;
barvabodu=Red;

TlumeneKmitani=Manipulate[Deploy[
pohybovarce= m y''[t]+k2 y'[t]+k y[t]==0;
ypocatecni=y[0]==y0;
vpocatecni=y'[0]==v0;
pom=DSolve[{pohybovarce,ypocatecni,vpocatecni},y[t],t];
okamzitavychylka=y[t]/.pom[[1]];
T=2π(Sqrt[(m/k)]);
omega=((k2^2)/(4(m^2)))-(k/m);
grafik=Show[
Plot[okamzitavychylka,{t,0,15T},PlotStyle->{barvagrafu,Thickness[tloustka]},PlotRange->All,AxesLabel->{"(t/s)","(y/m)"}],
Graphics[{
If[zobrazitinfo,
If[k2==0,
Text[Style["kmitání je netlumené",15,barva,FontFamily->Times,Bold],{x2,y2},{Right,Top}],
If[omega>0,
Text[Style["tlumení kmitání je nadkritické",15,barva,FontFamily->Times,Bold],{x2,y2},{Right,Top}],
If[omega==0,
Text[Style["tlumení kmitání je kritické",15,barva,FontFamily->Times,Bold],{x2,y2},{Right,Top}],
Text[Style["tlumení kmitání je podkritické",15,barva,FontFamily->Times,Bold],{x2,y2},{Right,Top}]]]],
Text[""]],
If[zobrazitrovnici,
Text[Style[StringJoin["y = ",ToString[okamzitavychylka,TraditionalForm]],15,barvagrafu,FontFamily->Times,Bold],{x2,0.85y2},{Right,Top}],
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{x1,x2},{y1,y2}},ImageSize->490
]],

{{m,m0,Style["m",15,barva]},mmin,mmax,deltam,Appearance->"Labeled"},
{{k,k0,Style["k",15,barva]},kmin,kmax,deltak,Appearance->"Labeled"},
{{k2,k20,Style["(Subscript[k, 2])",15,barva]},k2min,k2max,deltak2,Appearance->"Labeled"},
Delimiter,
Item[Style["Počáteční podmínky:",15,barva,FontFamily->Times,Bold,Underlined]],
{{y0,y00,Style["(Subscript[y, 0])",15,barva]},y0min,y0max,deltay0,Appearance->"Labeled"},
{{v0,v00,Style["(Subscript[v, 0])",15,barva]},v0min,v0max,deltav0,Appearance->"Labeled"},
Delimiter,
Item[Style["Zobrazit:",15,barva,FontFamily->Times,Bold,Underlined]],
{{zobrazitinfo,True,Style["- informace",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitrovnici,False,Style["- závislost y na t",15,barva,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, 2008",10,Black,FontFamily->Times],"",Style["Tlumené kmitá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.

TlumeneKmitani