Nastavenie súborov cookie

Keď navštívite ktorúkoľvek internetovú stránku, táto stránka môže uložiť alebo obnoviť informácie o vašom prehliadači, najmä v podobe súborov cookie. Tieto informácie sa môžu týkať vás, vašich preferencií, vášho zariadenia alebo sa môžu použiť na to, aby stránka fungovala tak, ako očakávate. Tieto informácie vás zvyčajne neidentifikujú priamo, vďaka nim však môžete získať viac prispôsobený internetový obsah. V týchto nastaveniach si môžete vybrať, že niektoré typy súborov cookie nepovolíte. Po kliknutí na nadpisy jednotlivých kategórií sa dozviete viac a zmeníte svoje predvolené nastavenia. Mali by ste však vedieť, že blokovanie niektorých súborov cookie môže ovplyvniť vašu skúsenosť so stránkou a služby, ktoré vám môžeme ponúknuť. Viac informácií

Spravovať nastavenie súborov cookie

Nevyhnutne potrebné súbory cookie

Vždy aktívne

Tieto súbory cookie sú potrebné na zabezpečenie funkčnosti internetovej stránky a nemožno ich v našich systémoch vypnúť. Zvyčajne sa nastavujú len ako reakcia na vami vykonané činnosti, ktoré predstavujú žiadosť súvisiacu so službami, ako je napríklad nastavenie preferencií ochrany osobných údajov, prihlasovanie alebo vypĺňanie formulárov. Svoj prehliadač môžete nastaviť tak, aby blokoval alebo vás upozorňoval na takéto súbory cookie, v takom prípade však nemusia niektoré časti stránky fungovať.

Súbory cookie súvisiace s výkonom

Tieto súbory cookie nám umožňujú určiť počet návštev a zdroje návštevnosti, aby sme mohli merať a vylepšovať výkon našej stránky. Pomáhajú nám zistiť, ktoré stránky sú najviac a najmenej populárne, a vidieť, koľko návštevníkov sa na stránke pohybuje. Všetky informácie, ktoré tieto súbory cookie zbierajú, sú súhrnné, a teda anonymné. Ak tieto súbory cookie nepovolíte, nebudeme vedieť, kedy ste našu stránku navštívili.

Vytvorte súbor [priezvisko]-2.R a naprogramujte v ňom nasledovné:

  1. Naprogramujte funkciu createMatrixByPowers(x, k). Vstupným argumentom je číselný vektor x; jeho dĺžku označme n. Výstupom funkcie je matica s n riadkami a k+1 stĺpcami; jej stĺpce sú: stĺpec jednotiek, stĺpec x, stĺpec x^2, ..., stĺpec x^k. Otestujte túto funkciu pre vektor x=1:5 a k=2. Získanú maticu označte A. Maticu vypíšte (a výpis skopírujte do R-súboru vo forme komentára). Vypíšte aj maticu B, získanú ako (maticový) súčin t(A) s A. Spočítajte inverznú maticu k B a determinant B aj inverznej k B. Vypíšte vlastné čísla B a overte, že sú nezáporné.
  2. Naprogramujte funkciu calcPi(tol=1e-10, verbose=0), ktorá so zadanou presnosťou odhadne konštantu π podľa metódy Bailey-Borwein-Plouffe (v ďalšom: BBP). Algoritmus implementujte nasledovne:
    - postupne v cykle sčitujte jednotlivé členy BBP-rozvoja; pritom nepoužívajte umocňovanie, ale hodnotu zlomku 1/16^k počítajte postupne tak, že si pred cyklom zavediete pomocnú premennú pow16 (ktorú inicializujete na 1) a v cykle ju zakaždým vydelíte 16;
    - výpočet ukončite, keď aktuálny člen BBP-rozvoja bude menší ako tol (argument funkcie s default hodnotou 1e-10);
    - ak bude argument verbose väčší ako 0, v cykle vypisujte k, aktuálny člen BBP-rozvoja aj aktuálnu aproximáciu konštanty π.
    Funkciu použite postupne s toleranciami 1e-10, 1e-11, ..., 1e-16. Zakaždým vypíšte Váš odhad aj chybu (ktorú získate pomocou R-konštanty pi).
  3. Naprogramujte funkciu expByTaylor(x, tol=1e-10), ktorá pre číslo x spočíta hodnotu e^x pomocou Taylorovho rozvoja: e^x = 1 + x^1/1! + x^2/2! + x^3/3! + ... Algoritmus implementujte nasledovne:
    - postupne v cykle sčitujte jednotlivé členy Taylorovho rozvoja;
    - výpočet ukončite, keď aktuálny člen bude menší ako tol (druhý argument funkcie s default hodnotou 1e-10);
    - pri výpočte nasledovného člena nepoužívajte umocňovanie ani faktoriál, ale využite jednoduchý vzťah, ako z (n-1)-vého člena vypočítať n-tý: (n-1)-vý člen stačí vynásobiť x a vydeliť n.
    Funkciu použite na celé čísla x od 0 do 10 (využite pritom cyklus for) a výsledok uložte do vektora expx. Porovnaním expx s výsledkom funkcie exp() (ktorá funguje aj pre vektorové argumenty) spočítajte chyby, akých sa Vaša metóda dopustila.
    Nepovinne: skúste metódu expByTaylor(x, tol=1e-10) zaimplementovať tak, aby za x bolo možné dosadiť aj vektor. Malo by postačovať upraviť podmienku na ukončenie cyklu.

 
Všetky výsledky uložte do R-súboru vo forme komentára, hneď za príslušným R-kódom. Pri riešení nepoužite žiadnu z externých R-knižníc; využiť môžete funkcie zo súboru 04-fun.R z poslednej prednášky.

R-súbor pošlite na email vladimir.spitalsky (doména umb.sk) do 14.3.2022.

 

Konzultačné hodiny

Pondelok
10:30 - 11:50
Utorok
-
Streda
-
Štvrtok
-
Piatok
-