Taylor E 3011 Jan Böhm RECETOX March 20, 2024 Jan Böhm (RECETOX) Cvičení V March 20, 2024 1 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 Jan Böhm (RECETOX) Cvičení V March 20, 2024 2 / 13 Import vlastních funkcí Vytvořené funkce (jako třeba factorial budeme udržovat ve vlastním skriptu functions.py, ze kterého je pak můžeme importovat stejně, jako externí knihovny. 1 import functions 2 print(functions.factorial(2)) 3 4 import functions as f 5 print(f.factorial(3)) 6 7 from functions import factorial 8 print(factorial(4)) 9 10 from functions import * 11 print(factorial(5)) 12 13 from functions import factorial as fac 14 print(fac(6)) Oba skripty musí být ve stejném adresáři. Pozor na neuložené změny. Jan Böhm (RECETOX) Cvičení V March 20, 2024 3 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 🍕 Jan Böhm (RECETOX) Cvičení V March 20, 2024 4 / 13 Přibližně e e Vytvořte funkci e(tol = 6), která vrací hodnotu e s přesností danou parametrem tol. Pro výpočet přibližné hodnoty e využijte formuli e = ∞ k=0 1 k! , která je odvozena z Taylorova rozvoje funkce ex . Sumu nepočítejte do nekonečna ale jen do té doby, kdy je přírůstek nového člene větší, než 10−tol. Jan Böhm (RECETOX) Cvičení V March 20, 2024 5 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 🍕 Jan Böhm (RECETOX) Cvičení V March 20, 2024 6 / 13 Přibližně π π Vytvořte funkci pi(tol = 6), která vrací hodnotu π s přesností danou parametrem tol. Pro výpočet přibližné hodnoty π využijte Leibnizovu formuli π = 4 ∞ k=0 (−1)k 2k + 1 , která je odvozena z Taylorova rozvoje funkce arctan. Sumu nepočítejte do nekonečna ale jen do té doby, kdy je přírůstek nového člene větší, než 10−tol. Jan Böhm (RECETOX) Cvičení V March 20, 2024 7 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 🍕 Jan Böhm (RECETOX) Cvičení V March 20, 2024 8 / 13 Přibližně sin sin(x) Vytvořte funkci sin(x, tol = 6), která vrací hodnotu sin(x) s přesností danou parametrem tol. Pro výpočet přibližné hodnoty sin(x) využijte Taylorův rozvoj této funkce v okolí nuly: sin(x) = ∞ k=0 (−1)k (2k + 1)! x(2k+1) . Tato aproximace je vhodná pro x ∈ −π; π . Pro hodnoty mimo tento interval využijte identity sin(x) = sin(x mod 2π). Sumu nepočítejte do nekonečna ale jen do té doby, kdy je přírůstek nového člene větší, než 10−tol. Jan Böhm (RECETOX) Cvičení V March 20, 2024 9 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 🍕 Jan Böhm (RECETOX) Cvičení V March 20, 2024 10 / 13 Přibližně ln ln(x) Vytvořte funkci ln(x, tol = 6), která vrací hodnotu ln(x) s přesností danou parametrem tol. Pro výpočet přibližné hodnoty ln(x) využijte Taylorův rozvoj této funkce v okolí 1: ln(x) = ∞ k=1 (−1)k+1 k (x − 1)k . Pozor, tato aproximace konverguje jen pro x ∈ (0, 2 . Proto budete pro x > 2 potřebovat identitu ln(x) = − ln(1 x ). Sumu nepočítejte do nekonečna ale jen do té doby, kdy je přírůstek nového člene větší, než tol. Nakonec vytvořte funkci log(x, base = 2, tol = 6), která počítá logaritmus čísla x ve zvolené bázi base. Stačí využít identity logb(x) = loga(x) loga(b) . Jan Böhm (RECETOX) Cvičení V March 20, 2024 11 / 13 Co nás dnes čeká 1 functions.py 2 e 3 π 4 Goniometrické funkce 5 Logaritmus funkce 6 🍕 Jan Böhm (RECETOX) Cvičení V March 20, 2024 12 / 13 Takeaways Po tomto cvičení byste měli mít připravené funkce e(tol = 6) a pi(tol = 6), které vrací uvedené konstanty sin(x, tol = 6), ln(x, tol = 6) a log(x, base = 2, tol = 6, které počítají funkční hodnoty sinu, přirozeného logaritmu resp. logaritmu se zvolenou bází Tyto funkce si přidejte do své ”knihovny” functions.py. Po tomto cvičení byste měli umět: Vyrobit další funkce postavené na (Taylorovu) polynomu, např. zbytek goniometrických funkcí, exponenciální funkci nebo např. hyperbolické funkce. Zjistit, kolik iterací uvnitř funkce proběhlo, než došlo k požadovanému výsledku (např. porovnejte počet iterací e(tol = 6) a pi(tol = 6). Rozumět limitům a problémům funkcí, které jste nachystali. Jak jsou přesné, rychlé, kdy selžou? Jan Böhm (RECETOX) Cvičení V March 20, 2024 13 / 13