삼각표
Trigonometric tables삼각법 |
---|
언급 |
법률 및 정리 |
미적분학. |
수학에서 삼각함수 표는 여러 영역에서 유용합니다.포켓 계산기가 존재하기 전에 삼각표는 항법, 과학 및 공학에 필수적이었다.수학 표의 계산은 최초의 기계 컴퓨팅 장치의 개발로 이어진 중요한 연구 분야였다.
현대 컴퓨터와 포켓 계산기는 이제 특수 수학 코드 라이브러리를 사용하여 필요에 따라 삼각 함수 값을 생성합니다.종종 이러한 라이브러리는 사전에 계산된 표를 내부적으로 사용하고 적절한 보간 방법을 사용하여 필요한 값을 계산합니다.삼각함수의 간단한 룩업 테이블의 보간은 보통 약간의 정확성만 요구되고 속도가 가장 중요한 컴퓨터 그래픽스에서 여전히 사용됩니다.
삼각 테이블과 생성 방식의 또 다른 중요한 적용은 고속 푸리에 변환(FFT) 알고리즘에 대한 것으로, 특히 같은 크기의 많은 변환이 계산되는 일반적인 경우, 주어진 변환에서 동일한 삼각 함수 값(트위들 계수라고 함)을 여러 번 평가해야 합니다.이 경우 매번 범용 라이브러리 루틴을 호출하는 것은 허용할 수 없을 정도로 느립니다.한 가지 옵션은 라이브러리 루틴을 한 번 호출하여 필요한 삼각값의 테이블을 작성하는 것이지만, 이 경우 테이블을 저장하는 데 상당한 메모리가 필요합니다.또 다른 가능성은 값의 규칙적인 시퀀스가 필요하기 때문에 반복 공식을 사용하여 즉시 삼각 값을 계산하는 것입니다.FFT(트리거 오차에 매우 민감한)의 정확성을 보존하기 위해 정확하고 안정적인 반복 체계를 찾기 위해 상당한 연구가 수행되었습니다.
온디맨드 계산
현대 컴퓨터와 계산기는 다양한 기술을 사용하여 임의의 각도에 대한 요구에 따라 삼각함수 값을 제공한다(Kantabutra, 1996).특히 부동소수점 유닛을 갖춘 고급 프로세서에서 한 가지 일반적인 방법은 다항식 또는 합리적인 근사(체비셰프 근사, 최선의 균일 근사, 파데 근사, 그리고 일반적으로 더 높거나 가변적인 정밀도, 테일러 및 로랑 시리즈 등)를 범위 축소 및 테이블 룩업과 결합하는 것입니다.k 작은 표에서 가장 가까운 각도를 얻은 다음 다항식을 사용하여 보정을 계산합니다.이러한 보간을 수행하면서 정밀도를 유지하는 것은 중요하지 않지만 Gal의 정확한 표, Cody 및 Waite 범위 축소, Payne 및 Hanek radian 축소 알고리즘과 같은 방법을 사용할 수 있다.하드웨어 멀티플라이어가 없는 심플한 디바이스에서는 CORDIC(및 관련 기술)이라고 불리는 알고리즘이 있어 시프트와 추가만을 사용하기 때문에 효율적입니다.이러한 모든 방법은 일반적으로 성능상의 이유로 하드웨어에 구현됩니다.
삼각함수를 근사하는 데 사용되는 특정 다항식은 미니맥스 근사 알고리즘의 근사치를 사용하여 미리 생성됩니다.
매우 정밀도 계산의 경우 직렬-팽창 수렴이 너무 느려지면 삼각함수는 산술-기하 평균으로 근사할 수 있으며, 산술-기하 평균은 삼각함수 자체를 (복소수) 타원 적분으로 근사한다(Brent, 1976)
2µ의 유리배수인 각도의 삼각함수는 대수적 수이다.a/b·2µ의 값은 n = a에 대한 deb Moivre의 항등식을 복소 평면에서 다항식 x - 1의 근이기도 한 단일성의th b근에 적용하여 구할 수 있다.예를 들어, 2µ ≤ 5/37의 코사인 및 사인 각각은 degree-37 다항식37 x - 1의 근인 유니티 cos (2µ/37) + sin (2µ/37)i의 37번째 근의 5제곱의 실수 및 허수 부분이다.이 경우, 뉴턴의 방법과 같은 근원 찾기 알고리즘은 유사한 점근 속도로 수렴하면서 위의 산술-기하 평균 알고리즘보다 훨씬 단순하다.그러나, 후자의 알고리즘은 초월 삼각 상수에는 필요합니다.
반각 및 각도 덧셈 공식
역사적으로 삼각표 계산의 가장 초기 방법이자 아마도 컴퓨터가 등장하기 전까지 가장 일반적인 방법은 알려진 값(예: sin(θ/2) = 1, cos(θ/2) = 0)에서 시작하는 반각 및 각도-각 삼각표 식별을 반복적으로 적용하는 것이었다.이 방법은 고대 천문학자 프톨레마이오스에 의해 사용되었고, 그는 천문학에 대한 논문인 알마게스트에서 그것들을 도출했다.현대적 형태에서, 그가 도출한 정체성은 다음과 같이 명시된다(x가 있는 사분면에 의해 결정되는 기호).
이것들은 천문학적 문제에 적용된 프톨레마이오스의 화음표를 만드는데 사용되었다.
예를 들어, 일부 초기 삼각법 테이블은 사인 및 코사인 대신 사인 및 베르사인(versine)을 사용했습니다.
빠르지만 부정확한 근사치
sin(2µn/N) 및 cosn(2µn/N)의 N 근사치 테이블을n 계산하기 위한 빠르고 부정확한 알고리즘은 다음과 같습니다.
- s0 = 0
- c0 = 1
- sn+1 = sn + d × cn
- cn+1 = cn - d × sn
n = 0인 경우...,N - 1, 여기서 d = 2µ/N입니다.
이것은 단순히 미분 방정식을 적분하기 위한 오일러 방법입니다.
초기 조건 s(0) = 0 및 c(0) = 1로, 분석 용액은 s = sin(t) 및 c = cos(t)이다.
안타깝게도 이 알고리즘은 1/N에 비례하는 상당한 오류가 있기 때문에 사인 테이블을 생성하는 데 유용한 알고리즘이 아닙니다.
예를 들어, N = 256의 경우 사인 값의 최대 오차는 ~0.061입니다(s202 = -0.9757 대신 -1.0368).N = 1024의 경우 사인 값의 최대 오차는 ~0.015(s803 = -0.97832 대신 -0.99321)로 약 4배 작습니다.얻어진 사인 및 코사인 값을 플롯할 경우 이 알고리즘은 원이 아닌 로그 나선형을 그립니다.
더 낫지만 여전히 불완전한 반복 공식
삼각함수 표를 생성하는 간단한 반복 공식은 오일러 공식과 관계를 기반으로 합니다.
따라서 위와 같이 삼각법 값 sn 및n c를 계산하기 위해 다음과 같은 반복이 발생합니다.
- c0 = 1
- s0 = 0
- cn+1 = wr cn - wi sn
- sn+1 = wi cn + wr sn
n = 0, ..., N - 1(여기서r w = cos(2µ/N) 및 wi = sin(2µ/N)).이 두 개의 시작 삼각함수 값은 일반적으로 기존 라이브러리 함수를 사용하여 계산됩니다(예: z - 1의 원시N 근에 대해 풀기 위해 복소 평면에서 뉴턴의 방법을 사용하여 찾을 수도 있습니다).
이 메서드는 정확한 산술에서는 정확한 테이블을 생성하지만 유한 정밀도의 부동 소수점 산술에서는 오류가 발생합니다.실제로 오차는 O(최악의 경우와 평균의 경우 모두)로 증가합니다.여기서 is는 부동소수점 정밀도입니다.
중요한 개선 사항은 FFT 구현을 위한 삼각 값을 생성하는 데 자주 사용되는 트릭(싱글턴으로[1] 인해)인 위의 수정 사항을 다음과 같이 사용하는 것입니다.
- c0 = 1
- s0 = 0
- cn+1 = cn - (αn c + βn s)
- sn+1 = sn + (βn c - αn s)
여기서 α = 22 sin(γ/N), β = sin(2γ/N)이다.이 방법의 오차는 평균 O(ε n N), 최악의 경우 O( n N)로 훨씬 적지만, 여전히 큰 크기의 FFT의 정확도를 크게 저하시킬 만큼 큽니다.
「 」를 참조해 주세요.
레퍼런스
- Carl B. Boyer(1991) 수학사, 제2판, John Wiley & Sons.
- Manfred Tasche와 Hansmartin Zeuner(2002) "사전 계산된 트위들 인자의 반올림 오차 분석 개선", Journal for Computational Analysis and Applications 4 (1): 1~18.
- 제임스 C.샤츠만(1996) "이산 푸리에 변환과 고속 푸리에 변환의 정확성", SIAM 과학 컴퓨팅 저널 17(5): 1150–1166.
- Vitit Kantabutra(1996) "지수와 삼각함수를 계산하는 하드웨어에 대하여", IEEE Transactions on Computers 45(3): 328~339.
- R. P. Brent(1976) "초급 기능의 고속 다중 정밀도 평가", 컴퓨터 기계 협회 저널 23: 242-251.
- Singleton, Richard C (1967). "On Computing The Fast Fourier Transform". Communications of the ACM. 10 (10): 647–654.
- 윌리엄 J.Cody Jr., William Waite, Frentice-Hall, 1980년, ISBN 0-13-822064-6.
- 메리 H. 페인, 로버트 N.Hanek, 삼각함수에 대한 라디안 감소, ACM SIGNUM 뉴스레터 18: 19-24, 1983.
- Gal, Shmuel and Bachelis, Boris (1991) "IEEE 부동소수점 표준을 위한 정확한 초등 수학 라이브러리", ACM Transactions on Mathemical Software."