({{Číslo projektu, CZ.1.07/1.1.36/02.0066}, {Autor, Ladislav Kašpárek}, {Předmět, Programovací metody}, {Téma, Numerická integrace}, {Metodický pokyn, výkladový text s ukázkami, experimentální dokument}})

Numerická integrace

V této kapitole si ukážeme tři základní matematické aplikace určitého integrálu, které se na střednímch školách (alespoň některých) stále ještě učí. Jedná se o aplikace ryze matematické. Aplikace z jiných oborů (fyzika, elektrotechnika, ap.) si může laskavý čtenář nastudovat sám.

Objem rotačního tělesa

Rotační těleso vznikne rotací křivky okolo přímky - osy rotace. Typicky se rotuje rovinná křivka (funkce) okolo osy x, aby vzniklo konečné těleso musíme mít na intervalu <a, b> spojitou funkci f(x).
Příklad: vypočtěte objem rotačního tělasa, které vznikne z funkce, kterou stále používáme při výkladu a opět nad intervalem  <1, 4>, viz následující obrázek:

Show[RevolutionPlot3D[-2+14 x-7 (x^2)+(x^3),{x,1,4},RevolutionAxis->{1, 0, 0},BoxRatios->{2, 1, 1}],Graphics3D[{Black,Thickness[0.01],Line[{{0,0,0},{5,0,0}}]}]]

Těleso vzniklo rotací funkce -2+14 x-7 (x^2)+(x^3) okolol osy x, která je v obrázku také vyznačena.
POZN: všimněte si, že byla upravena proporce na ose x, tak aby výsledné těleso připomínalo elegantní vázu, na objemu výsledného tělesa to nic nemění.
Základní vzorec pro výpočet objemu rotačního tělesa má podobu:

({{({{V=π(∫_a^b)(f^2)(x)dx}})}})

Komentář: původní funkce f(x) se umocní na druhou a pak integruje tak, jak jsme zvyklí, nezapomeňte integrál vynásobit číslem π. Zde je uveden přesný výpočet bez použití numerických metod, výsledek je přesný.

π Integrate[(((-2+14 x-7 (x^2)+(x^3)))^2),{x,1,4}]

%//N

Nyní již máme dostatek znalostí a můžeme integrovat numericky. Vypočtěte tento příklad pomocí lichoběžníkové metody a odhadněte počet iterací pro přesnost 1/1000.

fdd[x_]:=(((-2+14 x-7 (x^2)+(x^3)))^2)//Expand
fdd''[x]

FindMaximum[{fdd''[x],1≤x≤4},x]

Nyní je možné odhadnout počet dílků na které rozdělíme interval <1; 4> pro přesnost pod hranicí 1/1000. Nápověda: použijte vzorec z předchozího materiálu o lichoběžníkové metodě.

({{(({{(max_(<a, b>)) |f''(x)|}})/(12(n^2)))(((b-a))^3)}})

Délka rovinné křivky I

Další klasický příklad použití určitého integrálu je stanovení délky rovinné křivky. Např: jak je dlouhý sinus v intervalu <0;180>, jak je dlouhá parabola v intervalu <0;1> a <1;2> atd.

Plot[Sin[x],{x,0,π},AspectRatio->1/3]

Plot[(x^2),{x,0,2},AspectRatio->1,ColorFunction->Function[{x,y},If[x<0.5,Black,Red]],Epilog->Point[{1,1}]]

Vypočtěte délku černé a červené části funkce (x^2) porovnejte jejich délky! na ose x se shodují na ose y nikoliv.

Pro tyto úlohy je nutné mít vzorec pro výpočet délky křivky:

({{({{L=(∫_a^b)(Sqrt[1+(((f'(x)))^2)])dx}})}})

Pro příklad použijeme opět funkci -2+14 x-7 (x^2)+(x^3) nad intervalem <1; 4>. Nejprve přistoupíme k přesnému výpočtu a pak jej porovnáme s numerickým. POZOR integrovat odmocniny není algebraicky úplně snadné a při nešikovně zdané funkci f(x) se nemusí integrál podařit najít (algebraicky), popř výpočet bude trvat extremně dlouho. To je ovšem situace vhodná pro naše numerické výpočty!

f[x_]:=(x^3)-7(x^2)+14x-2

(∫_1^4)(Sqrt[1+(((f'[x]))^2)])\[DifferentialD]x

NIntegrate[(Sqrt[1+(((f'[x]))^2)]),{x,1,4}]

Zde je vidět, že se nepodařilo najít integrál algebraicky, ale numerický výpočet je velmi rychlý.
Úkol: Napište program v jazyce Java pro tento příklad, výpočet proveďte s přesností na 3 desetinná místa. Experimentujte s počtem dílků na itervalu <1; 4>.

Délka rovinné křivky II

Délku rovinné křivky není nutné hledat pomocí integrálu (viz výše), ale stačí upravit lichoběžníkovou metodu integrace, aby nepočítala obsahy obdélníků, ale délky “horních” úsečel lichoběžníků a pak je sečetla. Souřadnice bodů úseček známe (lichoběžníková metoda je používá) a pak stačí jejich vzdálenost určit pomocí Pythagorovy věty.
Pozn: touto cestou je ostatně integrál z předchozího odstavce odvozen.

Úkol: přeprogramujte lichoběžníkovou metodu, tak aby počítala délku rovinné křivky dle vysloveného návodu.

Shrnutí

Délka rovinné křivky je další klasická aplikace na určitý integrál. Pro svoji složitost (nesnadnost nebo nemožnost) nalezení příslušného integrálu se o ní středoškolská matematika často nezmiňuje, nebo jen o jednoduchých příkladech. Numerické výpočty tyto problémy nemají a proto její zařazení je vhodné.

Sbírka úloh

1/ Vypočtěte délky křivek na intervalu <1; 2>. ln x, (e^x), (x^3), (x^4), sin(100x).
2/ Odvoďte pomocí integrálu pythagorovu větu. (délka rovinné křivky-úsečky)
3/ Jak je dlouhý sinus v intervalu <0;180>, jak je dlouhá parabola v intervalu <0;1> a <1;2> atd.
4/ Napište program v jazyce Java pro tento příklad, výpočet proveďte s přesností na 3 desetinná místa. Experimentujte s počtem dílků na itervalu <1; 4>.
5/  Přeprogramujte lichoběžníkovou metodu, tak aby počítala délku rovinné křivky dle vysloveného návodu.

Zdroje

http://www.kvd.zcu.cz/cz/materialy/numet/_numet.html#_Toc501178915
http://reference.wolfram.com/mathematica/ref/Integrate.html
http://reference.wolfram.com/mathematica/ref/NIntegrate.html
http://www.matematika.cz/urcity-integral