Trigonometrické tabulky - Trigonometric tables
![]() | Tento článek obsahuje a seznam doporučení, související čtení nebo externí odkazy, ale její zdroje zůstávají nejasné, protože jí chybí vložené citace.Prosince 2018) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Trigonometrie |
---|
![]() |
Odkaz |
Zákony a věty |
Počet |
v matematika, tabulky trigonometrické funkce jsou užitečné v mnoha oblastech. Před existencí kapesní kalkulačky, trigonometrické tabulky byly nezbytné pro navigace, Věda a inženýrství. Výpočet matematické tabulky byla důležitou oblastí studia, která vedla k rozvoji první mechanické výpočetní zařízení.
Moderní počítače a kapesní kalkulačky nyní generují hodnoty trigonometrických funkcí na vyžádání pomocí speciálních knihoven matematického kódu. Tyto knihovny často interně používají předem vypočítané tabulky a pomocí vhodného výpočtu vypočítávají požadovanou hodnotu interpolace metoda. Interpolace jednoduchých vyhledávacích tabulek trigonometrických funkcí se stále používá v počítačová grafika, kde může být vyžadována pouze mírná přesnost a rychlost je často prvořadá.
Další důležitá aplikace trigonometrických tabulek a generačních schémat je pro rychlá Fourierova transformace (FFT) algoritmy, kde jsou stejné hodnoty trigonometrických funkcí (tzv dvojité faktory) musí být v dané transformaci mnohokrát vyhodnoceny, zejména v běžném případě, kdy je počítáno mnoho transformací stejné velikosti. V takovém případě je volání obecných rutin knihovny pokaždé nepřijatelně pomalé. Jednou z možností je zavolat rutiny knihovny jednou a vytvořit tabulku těch trigonometrických hodnot, které budou potřeba, ale k uložení tabulky je zapotřebí značné paměti. Jinou možností, protože je vyžadována pravidelná posloupnost hodnot, je použití vzorce opakování k výpočtu trigonometrických hodnot za běhu. Významný výzkum byl věnován hledání přesných a stabilních schémat opakování, aby byla zachována přesnost FFT (která je velmi citlivá na trigonometrické chyby).
Výpočet na vyžádání

Moderní počítače a kalkulačky používají různé techniky k poskytování hodnot trigonometrických funkcí na vyžádání pro libovolné úhly (Kantabutra, 1996). Jedna běžná metoda, zejména u procesorů vyšší třídy s plovoucí bod jednotek, je kombinovat a polynomiální nebo Racionální přiblížení (jako Čebyševova aproximace, nejlepší jednotná aproximace a Aproximace Padé, a obvykle pro vyšší nebo proměnné přesnosti, Taylor a Laurentova řada ) s redukcí rozsahu a vyhledáním tabulky - nejprve vyhledají nejbližší úhel v malé tabulce a poté pomocí polynomu vypočítají korekci. Udržování přesnosti při provádění takové interpolace je však netriviální; a metody jako Galovy přesné tabulky K tomuto účelu lze použít redukční algoritmy Cody a Waite a redukční algoritmy Payne a Hanek. Na jednodušších zařízeních, která postrádají a multiplikátor hardwaru existuje algoritmus s názvem CORDIC (stejně jako související techniky), který je efektivnější, protože používá pouze směny a dodatky. Všechny tyto metody jsou běžně implementovány v Hardware z důvodů výkonu.
Konkrétní polynom, který se používá k aproximaci trigové funkce, je generován předem pomocí nějaké aproximace a algoritmus aproximace minimax.
Pro velmi vysoká přesnost výpočty, když se konvergence sériové expanze příliš zpomalí, lze trigonometrické funkce aproximovat pomocí aritmeticko-geometrický průměr, který sám aproximuje trigonometrickou funkci pomocí (komplex ) eliptický integrál (Brent, 1976).
Trigonometrické funkce úhlů, které jsou Racionální násobky 2π jsou algebraická čísla. Hodnoty pro a / b · 2π lze nalézt přihlášením de Moivreova identita pro n = a do a bth kořen jednoty, který je také kořenem polynomu Xb - 1 v složité letadlo. Například kosinus a sinus 2π ⋅ 5/37 jsou nemovitý a imaginární části, páté síly 37. kořene jednoty cos (2π / 37) + sin (2π / 37) i, což je kořen stupeň -37 polynom X37 - 1. V tomto případě algoritmus pro hledání kořenů, jako je Newtonova metoda je mnohem jednodušší než výše uvedené aritmeticko-geometrické průměrné algoritmy, zatímco konverguje podobnou asymptotickou rychlostí. Druhé algoritmy jsou vyžadovány pro transcendentální trigonometrické konstanty.
Vzorce s polovičním úhlem a sčítáním úhlu
Historicky nejstarší metodou, kterou byly počítány trigonometrické tabulky, a pravděpodobně nejběžnější až do nástupu počítačů, bylo opakovaně aplikovat přidání úhlu a úhlu trigonometrické identity počínaje známou hodnotou (například sin (π / 2) = 1, cos (π / 2) = 0). Tuto metodu použil starověký astronom Ptolemaios, který je odvodil v Almagest pojednání o astronomii. V moderní podobě jsou identity, které odvodil, uvedeny následovně (se znaky určenými kvadrantem, ve kterém X lži):
Ty byly použity ke konstrukci Ptolemaiova tabulka akordů, který byl aplikován na astronomické problémy.
Jsou možné různé další obměny těchto identit: například některé rané trigonometrické tabulky nepoužívaly sinus a kosinus, ale sinus a versine.
Rychlá, ale nepřesná aproximace
Rychlý, ale nepřesný algoritmus pro výpočet tabulky N aproximace sn pro hřích (2πn/N) a Cn pro cos (2πn/N) je:
- s0 = 0
- C0 = 1
- sn+1 = sn + d × Cn
- Cn+1 = Cn − d × sn
pro n = 0,...,N - 1, kde d = 2π /N.
To je prostě Eulerova metoda pro integraci diferenciální rovnice:
s počátečními podmínkami s(0) = 0 a C(0) = 1, jehož analytické řešení je s = hřích (t) a C = cos (t).
Bohužel to není užitečný algoritmus pro generování sinusových tabulek, protože má významnou chybu, úměrnou 1 /N.
Například pro N = 256 je maximální chyba v sinusových hodnotách ~ 0,061 (s202 = −1,0368 namísto −0,9757). Pro N = 1024, maximální chyba v sinusových hodnotách je ~ 0,015 (s803 = −0.99321 místo −0.97832), přibližně 4krát menší. Pokud by se měly získat sinusové a kosinové hodnoty, měl by tento algoritmus nakreslit spíše logaritmickou spirálu než kruh.
Lepší, ale stále nedokonalý vzorec opakování
![]() | tento článek případně obsahuje původní výzkum.Prosince 2018) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Je založen na jednoduchém vzorci opakování pro generování trigonometrických tabulek Eulerův vzorec a vztah:
To vede k následujícímu opakování pro výpočet trigonometrických hodnot sn a Cn jak je uvedeno výše:
- C0 = 1
- s0 = 0
- Cn+1 = wr Cn − wi sn
- sn+1 = wi Cn + wr sn
pro n = 0, ..., N - 1, kde wr = cos (2π /N) a wi = hřích (2π /N). Tyto dvě počáteční trigonometrické hodnoty se obvykle počítají pomocí existujících knihovních funkcí (lze je ale také najít např. Použitím Newtonova metoda v komplexní rovině vyřešit pro primitiva vykořenit z zN − 1).
Tato metoda by vytvořila přesný tabulka v přesné aritmetice, ale má chyby v konečné přesnosti plovoucí bod aritmetický. Ve skutečnosti chyby rostou jako O (εN) (v nejhorším i průměrném případě), kde ε je přesnost s plovoucí desetinnou čárkou.
Významným vylepšením je použití následující modifikace výše uvedeného, triku (kvůli Singletonovi, 1967), který se často používá ke generování trigonometrických hodnot pro implementace FFT:
- C0 = 1
- s0 = 0
- Cn+1 = Cn - (α Cn + β sn)
- sn+1 = sn + (βCn - αsn)
kde α = 2 sin2(π /N) a β = sin (2π /N). Chyby této metody jsou mnohem menší, O (ε √N) v průměru a O (εN) v nejhorším případě, ale toto je stále dostatečně velké, aby podstatně snížilo přesnost FFT velkých velikostí.
Viz také
- Plimpton 322
- Numerická analýza
- CORDIC
- Přesné trigonometrické konstanty
- Aryabhatův sinusový stůl
- Madhavův sinusový stůl
Reference
- Carl B. Boyer (1991) Dějiny matematiky, 2. vydání, John Wiley & Sons.
- Manfred Tasche a Hansmartin Zeuner (2002) „Vylepšená analýza chyb zaokrouhlení pro předpočítané dvojité faktory“, Časopis pro výpočetní analýzu a aplikace 4(1): 1–18.
- James C. Schatzman (1996) „Přesnost diskrétní Fourierovy transformace a rychlé Fourierovy transformace“, SIAM Journal on Scientific Computing 17(5): 1150–1166.
- Vitit Kantabutra (1996) „O hardwaru pro výpočet exponenciálních a trigonometrických funkcí“ Transakce IEEE na počítačích 45(3): 328–339 .
- R. P. Brent (1976) "Rychlé vícenásobné přesné vyhodnocení základních funkcí ", Časopis Asociace pro výpočetní techniku 23: 242–251.
- Singleton, Richard C. (1967) „O výpočtu rychlé Fourierovy transformace“, Komunikace ACM 10: 647–654.
- Gal, Shmuel a Bachelis, Boris (1991) „Přesná základní matematická knihovna pro standard IEEE s plovoucí desetinnou čárkou“, Transakce ACM na matematickém softwaru.