Dokumetace k projektu pro předměty IZP a IUS Iteračí výpočty projekt č. 5..007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Iformačích Techologii Vysoké Učeí Techické v Brě
Obsah. Úvodí defiice..... Zadáí programu..... Matematické fukce....3. Statistické fukce....4. Fukce pro výpočet itegrálu.... Návrh řešeí..... Matematické fukce...... Fukce sius...... Fukce přirozeého logaritmu..... Statistické fukce...3... Výpočet průměré hodoty...3... Výpočet směrodaté odchylky...3.3. Itegrály...3.3.. Výpočet itegrálů obdélíkovou metodou...3.3.. Výpočet itegrálů lichoběžíkovou metodou...3 3. Implemetace vzorců...4 3.. Matematické fukce...4 3... Fukce sius...4 3... Fukce přirozeého logaritmu...4 3.. Statistické fukce...4 3... Výpočet průměré hodoty...4 3... Výpočet směrodaté odchylky...5 3.3. Itegrály...5 3.3.. Výpočet itegrálů obdélíkovou metodou...5 3.3.. Výpočet itegrálů lichoběžíkovou metodou...5 4. Metriky kódu...6 Použitá literatura...7 i
. Úvodí defiice.. Zadáí programu Cílem tohoto projektu je vytvořeí programu v jazyce C, který bude schope vypočítat hodoty matematických fukcí sius (si) a přirozeý logaritmus (l) a kalkulovat výsledky statistických fukcí průměru a výběrové směrodaté odchylky. Do programu jsem avíc implemetoval výpočet itegrálů obdélíkovou a lichoběžíkovou metodou. Program má zpracovat předem ezámou řadu čísel a jeho výstupem musí být stejě dlouhá řada výsledků. U statistických fukcí musí program po každém vstupu vypsat průběžé výsledky v počtu stejém jako byl uskutečě vstup. U fukcí matematických program ve vstupích parametrech očekává také Epsilo, což je maximálí možá odchylka a program musí být schope pracovat miimálě s touto přesostí... Matematické fukce Fukce je předpis, který přiřazuje každému číslu z možiy A (kde A je defiičí obor fukce) právě jedo reálé číslo.[].3. Statistické fukce Statistické fukce hledají spojitosti, odlišosti ebo jié vztahy mezi jejich prvky..4. Fukce pro výpočet itegrálu Itegrál se využívá apříklad při výpočtu délek křivek, velikostí povrchů a objemů geometrických útvarů, hmotostí a těžišť těles, poteciálů a drah hmotých bodů.[]
. Návrh řešeí.. Matematické fukce... Fukce sius Fukce sius je defiovaá od mius ekoeča do plus ekoeča, ale její obor hodot je je od - do. Jelikož je fukce sius periodická, bude ám stačit počítat s jedou periodou. Jeda perioda u fukce sius představuje hodotu dvou π, z čehož plye, že daou hodotu stačí upravit pomocí modulo(x). Při použití Taylorova rozvoje a přesosti *0-5 program pro ěkteré hodoty potřebuje až 8 cyklů. Fukce sius však a druhé poloviě periody má přesě opačé hodoty jako a prví, proto programu stačí počítat s poloviou periody a přehazovat zaméko si x = si x, přičemž při stejě přesosti už stačí je 8 cyklů. Pro maximálí optimalizaci však ještě můžeme využít podobosti v prví poloviě periody, kdy se sobě fukčí hodoty rovají, pokud jsou stejě vzdáleé od čtvrtiy periody. Proto programu stačí odečíst od hodot z druhé čtvrtiy periody dvojásobek rozdílu hodoty od čtvrtiy periody si x =si x x si x =si x Pro výpočet hodot z prví čtvrtiy periody už programu stačí při přesosti *0-5 0 cyklů. Dále by bylo možé provádět výpočet druhé osmiy periody pomocí fukce cosius, kdy druhá osmia periody sius je zrcadlově převráceá prví osmia periody cosius tz. si x =cos x x 4 si x =cos x, ale zamealo by to v krajích případech úsporu je cyklů, což v poměru ke složitosti evidím jako výhodé. O fukci sius také víme, že je lichá tz. že je souměrá podle počátku soustavy. Mohli bychom proto počítat je s kladou částí a ose x, ale a výpočet fukce pomocí Taylorova rozvoje to emá vliv.... Fukce přirozeého logaritmu Logaritmus při základu e e=lim [3] se azývá přirozeý logaritmus. Jeho vzorec pro výpočet pomocí Taylorovy řady je l x= x x x 3... [4] a platí pro iterval 3 0 x, kdy počet cyklů pro výpočet řady je tím vyšší, čím je hodota vzdáleější od. Aby mohl program počítat pomocí tohoto vzorce, musíme vstupí hodoty upravit a velikost itervalu určitého itervalu. Pro úpravu čísla použijeme vzorec log a r s =log a r log a s [], dále víme, že l e= a z toho dostaeme vzorec l x=l x e. Můžeme tedy daé číslo libovolě dělit a ásobit číslem e a k výsledku pak stačí přičíst (ebo odečíst) počet děleí/ásobeí. Nejvhoděší iterval pro výpočet je pak od e - do e 0, kdy maximum cyklu při přesosti *0-5 je zhruba 68.
.. Statistické fukce... Výpočet průměré hodoty Fukce průměré hodoty slouží k výpočtu průměru a její předpis je čleů. x= x= a x, kde je počet... Výpočet směrodaté odchylky Fukce výpočtu (výběrové) směrodaté odchylky slouží apříklad ke kotrole aměřeých hodot. Vzorec pro směrodatou odchylku je x= x i p [3], kde je počet prvků a p je i= průměrá hodota prvků..3. Itegrály.3.. Výpočet itegrálů obdélíkovou metodou Výpočet itegrálů obdélíkovou metodou se provádí sečteím obsahů obdélíků, jejichž rozměry jsou x h, kde x je velikost itervalu a h jsou fukčí hodoty fukce v daém místě. Celý vzorec b je pak a f x dx b a y 0 y y... y [3], y x = f a x b a. Tato metoda má však evýhodu apříklad při počítáí itegrálů fukcí jdoucí od 0, kde se vždy prví obdélík rová ule. Vzorec jsem proto mírě upravil v dosazováí za y x = f a x b a b a, což zameá, že velikost každého obdélíku je vypočítáváa ze středí hodoty jedoho itervalu..3.. Výpočet itegrálů lichoběžíkovou metodou Výpočet itegrálů lichoběžíkovou metodou je podobý jako výpočet metodou obdélíkovou, ale sčítají se lichoběžíky, jejichž výšky stra se rovají fukčím hodotám v daém místě. Vzorec b pak je a f x dx b a y y y... y y, y 0 0 = f a [3] 3
3. Implemetace vzorců 3.. Matematické fukce 3... Fukce sius x Taylorova řada pro výpočet fukce sius je si x= x x3 3!...... [5] Iteračími výpočty pak počítáme jedotlivé čley jako: cle i = cle i x k i k i sius počítáme a k i =k i, kde počátečí hodoty jsou k 0 = 3... Fukce přirozeého logaritmu Taylorova řada pro výpočet přirozeého logaritmu je: l x= x x získáme jedotlivé čley jako cle i = ahrada i k ahrada 0 = x a k i =k i přičemž k 0 =, kde x je hodota, pro kterou a cle 0 = x x 3... a z í 3, kde ahrada i = ahrada i x, 3.. Statistické fukce 3... Výpočet průměré hodoty U fukcí statistických ezáme předem počet čleů a musíme provádět výpočet po zadáí každé hodoty bez zalosti všech předchozích hodot. Samotý výpočet se provádí pomocí vzorce x= x= a x, kde se v každém kroku k čitateli přičte aktualí čle a ikremetuje se jmeovatel. Program si tedy zapamatuje je čitatele a jmeovatele předchozího výpočtu tedy: prumer= citatel i jmeovatel i, kde citatel i =citatel i x a jmeovatel i = jmeovatel i. 4
3... Výpočet směrodaté odchylky U této fukce budeme muset stejě jako u průměru předávat ěkolik hodot, proto také budeme muset upravit vzorec x= x i p a i= x= x i p x i p, i= i= i = je zřejmé že p = p x i a dostáváme vzorec i= i= x= x i p x i. Víme, že i= i= průměr p vypočítáme jako i = součet prvků adruhou, součet prvků a počet prvků. Tedy: x i.programu tedy stačí zát z předchozího výpočtu tři hodoty vysledek= soucet i prumer soucet i i, kde soucet i =soucet i x i, soucet i =soucet i x i, i = i a prumer= soucet i i. 3.3. Itegrály Pro výpočet itegrálu program potřebuje zát fukci, pro kterou bude itegrál počítat (využívá vlastích fukcí -si a -l při přesosti *0-5 ) a iterval fukce, který chceme vyhodotit. Tyto hodoty program očekává jako parametry při spuštěí (./proj -itegx -FUNKCE OD DO ; kde za X program očekává O pro obdélíkovou metodu ebo L pro lichoběžíkovou). 3.3.. Výpočet itegrálů obdélíkovou metodou Vlastí výpočet obdelíkovou metodou pak probíhá pomocí vzorce: b a f x dx b a y 0 y y... y y x = f a x b a b a, kde výsledkem je součet prvků prvek i = f Od i x x x;, kde x= Do Od. 3.3.. Výpočet itegrálů lichoběžíkovou metodou b a f x dx b a y 0 y y...y y, y 0 = f a teto vzorec si upravíme a: prvek i = hodota i hodota i x, kde hodota i = f Od i x a x= Do Od. 5
4. Metriky kódu Počet souborů: soubor Počet řádků zdrojového kódu: 467 Velikost statických dat: 849b Velikost spustitelé hosouboru: 535b (systém Liux) 6
Použitá literatura [] ODVÁRKO, Oldřich: Matematika pro gymázia Fukce : Prometheus, 003, ISBN 80-796-64-7 [] Kolektiv autorů, Ilustrovaý eciklopedický slovík: ACADEMIA, 980 [3] BARTSCH, Has/Joche : Matematické vzorce: Nakladatelství techické literatury, 983 [4] http://www.efuda.com/math/taylor_series/logarithmic.cfm [5] DOŠLÁ, Zuzaa; NOVÁK,Vítězslav: Nekoečé řady: Masarikova uiverzita v Brě, 00, ISBN 80-0-949-