Kvadratická funkce - cesta k derivaci

Následující aplet umožňuje pochopit "cestu k derivaci" kvadratické funkce. Graf kvadratické funkce y = a (x^2) lze aproximovat pomocí lomené čáry - počet úseků čáry lze volit posuvníkem počet úseků. V pravém grafu lze zobrazit jak derivaci kvadratické funkce, tak podíly ((Δy)/(Δx)) odpovící každé z částí lomené čáry, která je zobrazená v levém grafu.
Pomocí posuvníků lze nastavit:
	hodnotu koeficientu a z předpisu kvadratické funkce y = a (x^2);
	počet úseků lomené čáry, která aproximuje graf kvadratické funkce.

Dále lze volitelně zobrazit:
	dělení intervalu, na kterém je kvadratická funkce vykreslena a které vymezuje jednotlivé části lomené čáry (není-li tato volba zapnuta, není možné zobrazit lomenou čáru ani podíly);
	aproximaci grafu kvadratické funkce lomenou čárou;
	podíly ((Δy)/(Δx)) určené na základě jednotlivých úseků zobrazené lomené čáry (tj. aproximace);
	derivaci kvadratické funkce.
	
Tlačítkem Ulož obrázky se uloží právě zobrazené grafy v "bílém" okně do aktuální složky (složka, v níž je uložen tento notebook) pod jmény, která jsou uložena v proměnných jmenosouboru1 a jmenosouboru2. K těmto jménům souborů jsou při opakovaném ukládání grafů přidávána pořadová čísla.
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

ClearAll["Global`*"];
jmenosouboru1="derivace_uvod1_.jpg";
jmenosouboru2="derivace_uvod2_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

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

n0=1;nmin=1;nmax=10;deltan=1;
a0=(y2/(x2^2));amin=0.05;amax=0.5;deltaa=0.05;

tloustka=0.005;
velikostobrazku=400;

barva=Black;
barvagrafu=Blue;
barvacar=Gray;
barvaaproximace=Magenta;
barvaderivace=Orange;
barvapodilu=Red;

CestaKDerivaci=Manipulate[Deploy[
funkce[x_]:=a (x^2);
derivace[x_]:=funkce'[x];
useky=Table[
Line[{{x1+(i/pocetuseku)(x2-x1),y1},{x1+(i/pocetuseku)(x2-x1),y2}}],
{i,0,pocetuseku,1}];
aproximace=Table[
Line[{{x1+(i/pocetuseku)(x2-x1),funkce[x1+(i/pocetuseku)(x2-x1)]},{x1+((i+1)/pocetuseku)(x2-x1),funkce[x1+((i+1)/pocetuseku)(x2-x1)]}}],
{i,0,pocetuseku-1,1}];
podily=Table[
Line[{{x1+(i/pocetuseku)(x2-x1),(pocetuseku/((x2-x1)))(funkce[x1+((i+1)/pocetuseku)(x2-x1)]-funkce[x1+(i/pocetuseku)(x2-x1)])},{x1+((i+1)/pocetuseku)(x2-x1),(pocetuseku/((x2-x1)))(funkce[x1+((i+1)/pocetuseku)(x2-x1)]-funkce[x1+(i/pocetuseku)(x2-x1)])}}],
{i,0,pocetuseku-1,1}];

Grid[{
{graf1=Show[
Plot[funkce[x],{x,x1,x2},PlotStyle->{barvagrafu,Thickness[tloustka]}],
Graphics[{
If[zobrazitcary,
{{barvacar,Dashed,Thickness[0.5tloustka],useky},
If[zobrazitaproximaci,
{barvaaproximace,Thickness[1.25tloustka],aproximace},
Text[""]]},
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{x1,x2},{y1,y2}},AxesLabel->{"x","y"},ImageSize->velikostobrazku],
graf2=Show[
If[zobrazitderivaci,
Plot[derivace[x],{x,x1,x2},PlotStyle->{barvaderivace,Thickness[tloustka]}],
Plot[0,{x,x1,x1+0.001},PlotStyle->{barva,Thickness[0.001tloustka]}]],
Graphics[{
If[zobrazitcary∧(zobrazitpodily∨zobrazitderivaci),
{{barvacar,Dashed,Thickness[0.5tloustka],useky},
If[zobrazitpodily,
{barvapodilu,Thickness[1.25tloustka],podily},
Text[""]]},
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{x1,x2},{y1,y2}},AxesLabel->{"x","y"},ImageSize->velikostobrazku]}
}]],

{{a,a0,Style["a",15,barva,Italic]},amin,amax,deltaa},
Delimiter,
{{pocetuseku,n0,Style["počet úseků",15,barva,Italic]},nmin,nmax,deltan},
Delimiter,
Item[Style["Zobrazit",20,barva,FontFamily->Times,Bold,Underlined],Alignment->Left],
{{zobrazitcary,False,Style["- dělení",15,barvacar,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitaproximaci,False,Style["- aproximaci",15,barvaaproximace,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitpodily,False,Style["- podíly",15,barvapodilu,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitderivaci,False,Style["- derivaci",15,barvaderivace,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Button[" Ulož obrázky ",{pocetulozeni=pocetulozeni+1,{Export[StringInsert[StringJoin[cesta,jmenosouboru1],ToString[pocetulozeni],-5],graf1],Export[StringInsert[StringJoin[cesta,jmenosouboru2],ToString[pocetulozeni],-5],graf2]}},ImageSize->{100,Automatic}],
ControlPlacement->{Top,Top,Bottom,Bottom,Bottom,Bottom,Bottom,Bottom},
FrameLabel->{Style["© Jaroslav Reichl, 2009",10,Black,FontFamily->Times],"",Style[StringJoin[ToString[Style["Kvadratická funkce",barvagrafu],StandardForm]," - cesta k ",ToString[Style["derivaci",barvaderivace],StandardForm]],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.

CestaKDerivaci