!. Aproximace (funkce) - vykreslím si graf funkcie, ktorú chcem aproximovať (plot(f)) - funkciu rozdelím na viac častí, ktoré půjdu lepšie aproximovať - každú časť vyriešim osobitne a potom ich spojím pomocou funkcie piecewise - pozerám sa či je funkcia sudá, lichá alebo periodická, aby som nemusela rovnaké časti aproximovať viac krát (pomocou piecewise viem urobiť zrkadlenie funkcie atď...) - čím viac uzlových bodov tým presnejšia aproximácia (ale ja budem chcieť čím menej uzlových bodov - preto rozdeľujem funkciu na viac intervalov, kde sa ľahšie aproximuje) - pri použití kosínového rozdelenia je dobré pridať počiatočný a koncový bod intervalu, na ktorom aproximujem (aby nebola chyba apromácie v týchto bodoch veľká) - metódy: Lagrange (najpoužívanejšia), Newton, Spline (pri polynómoch aproximuje vraj lepšie), Prostá interpolace (vyskúšaj jednotlivé uvidíš čo vyhovuje najlepšie) - ukážka piecewise: i1:=phi(t): // ukladám výslednú aproximaci, ktorú robím na jednom intervale <0,1) i2:=phi(t): // ukladám výslednú aproximaci, ktorú urbím na druhom intervale <1, nek.) pom1:=piecewise(t >= 0 and t < 1, i1, t >= 1, i2): // spojím funkcie do jednej right_phi:=unapply(pom1,t): pom2:=piecewise(t < 0 and t >= -Pi/2, right_phi(-t)): // robím zrkadlenie left_phi:=unapply(pom2,t): pom:=piecewise(t < 0 and t >= -Pi/2, left_phi(t), t >= 0 and t < Pi/2, right_phi(t)): // spájam do jednej funkcie phi:=unapply(pom,t): - nakoniec vykresliť aproximaci a relativní a absolutní chybu 2. Aproximace (tabulkové hodnoty) - úloha o šťastí a poznaní priebehu rôznych funkcií - ak máme funkciu periodickú alebo skoro periodickú používame aproximaci konečnou Fourierovou řadou (1,cos2πt/T, sin2πt/T, cos4πt/T,sin4πt/T,...) - aprox_print.pdf strana 20 - inak sa používa arctan, exp, konštanta (zvykne sa dávať hneď ako prvá funkcia t = 1) ... - pýtaš sa ako prísť na tie správne bázové funkcie? Neviem... Pozeraj, skúšaj, kombinuj... - nezáleží na konštantách pri funkciách (postarajú sa o to konštanty, ktorými algoritmus násobí funkcie) - vzorce na derivace sú v NUMderivace.mw (niekedy treba obrátenú hodnotu derivace podľa x-sovej a y-novej osi grafu) - používa sa symetrický odhad, ktorý môžem porovnať s analytickým (D(f)) 3. Kořeny - najprv separace kořenů - niekedy uvidím koreň aj hneď z grafu - pozerám limity v nekonečnách, v bodoch nespojitosti (tam kde je menovateľ 0), skúšam derivovať atď... - keď vidím v grafe pri nekonečne nejaký "zobáčik" smerom k ose x, tak to preskúmam - často je to funkcia zložená z viacerých funkcii (môžem skúmať správanie každej zvlášť a zistiť čo to nakoniec urobí) - pre koreň je nutná podmienka zmena funkčnej hodnoty z kladnej na zápornú alebo naopak (takže keď mám stále + musela funkcia pretnúť osu ešte 2x) - odhad chyby: chyba:=evalf(-f(root)/(D(f))(root)) - nestačí nám, že funkčné hodnoty sú malé, lebo chyba na xsovej osy může byť stále veľká (veľmi pomaly klesajúca funkcia) 4. Lineární rovnice - ak sa matica dá upraviť na ostře diagonálne dominantní (na diagonále najväčšie hodnoty v absolutnej hodnote) urobím to (rýchlejšia konvergencia) - rýchlosť konvergencie určuje spektrální poloměr - konvergencia <0,1), ani ani 1, divergencia (1,...) - pri SOR vieme voliť omegu, pomocou ktorej vieme dosiahnuť (nie nutne), aby funkcia konvergovala - plot funkcie omega a hľadám kde nadobúda najnižšie hodnoty (medzi hodnotami 0 až 2 konvergencia) 5. Integrace - skúmame graf - ak periodický - nájdem periodu zintegrujem na periode a prenásobím výsledok počtom period + zintegrujem konce intervalov, kde je perioda odseknutá - ak je funkcia dlho blízka 0 - odseknem (odvôvodním prečo som mohla odseknúť túto časť intervalu - zintegrujem a plocha pod krivkou musí byť menšia ako požadovaná prestnosť - resp. "obdĺžník") - zase hľadám či funkcia nieje sudá..., aby som neintegrovala zbytočne viac (ak sudá, môžem zintegrovať jednu stranu a výsledok vynásobiť 2x) - nezabudnem si rozdeliť interval, ak je koniec intervalu niekede tam kde sa mi to nehodí - chyba sa určuje metódou polovičního kroku, ktorým by sa dalo určiť aj počet potrebných krokov (viz. int_print.pdf): resA:=Quadrature(f, x = interval, method = metoda, partition = n/2, output = value); resB:=Quadrature(f, x = interval, method = metoda, partition = n, output = value); odhad:=abs(resA-resB)/(2^N-1); - kde N je řád metody (napr. Simpson má řád 4...) - SUBSTITUCE - na konci vo worksheete je úprava zadaní substitucí - posledná látka v int_print.pdf