피타고라스 덧셈
Pythagorean addition수학에서 피타고라스 덧셈은 두 면으로 볼 때 직각 삼각형의 하이포텐 사용 길이를 계산하는 실제 숫자에 대한 이진 연산이다.피타고라스 정리에 따르면, 이 a과 b 인 삼각형의 경우 이 길이는 다음과 같이 계산할 수 있다.
이 작업은 데카르트 좌표를 극좌표로 변환하는 데 사용할 수 있다.그것은 또한 그것의 합계가 복잡할 때 몇몇 공식에 대해 간단한 표기법과 용어를 제공한다. 예를 들어, 물리학의 에너지-모멘텀 관계가 된다.
적용들
피타고라스 덧셈(및 하이팟 함수로서의 구현)은 종종 카트리지 좌표, y) 에서 극좌표, ) [3][4]:
If measurements have independent errors respectively, the quadrature method gives the overall error,
이는 피타고라스의 정리를 이용하여 각각 불확실성과 동일한 크기를 갖는 직교 벡터를 추가하는 결과물의 크기를 찾아내는 것과 같다.
신호 처리에서, 독립된 소음원으로부터 전체적인 노이즈를 찾기 위해 4차원의 추가가 사용된다.예를 들어, 이미지 센서가 6개의 디지털 숫자의 샷 노이즈, 3개의 다크 전류 노이즈, 그리고 특정 조건 하에서 존슨-나이키스트 노이즈의 twp를 제공하는 경우, 전체적인 노이즈는 다음과 같다.
특성.
작업이 연관되고 상호 [7]작용하며
아래의 실제 숫자는 그룹이 아니다. because 은(는) 결과로서 음수를 절대 생성할 수 없는 반면, 그룹의 각 요소는 ID 요소에 의한 곱셈의 결과여야 하기 때문이다.음수가 아닌 숫자에 대해서는 여전히 집단이 아니다. 왜냐하면 피타고라스가 한 숫자를 두 번째 양의 숫자에 더하면 첫 번째 숫자만 증가시킬 수 있기 때문에, 어떤 양의 숫자도 역 요소를 가질 수 없기 때문이다.그 대신 0을 정체성으로 하여 비음수(non-negative number)에 정류성 단모형을 형성한다.
실행
하이픈은 직각 삼각형의 저선용 길이를 계산하기 위해 정의된 수학적 함수다.컴퓨터에서 수행되는 제한적인 정밀도 계산으로 인한 오류를 방지하기 위해 설계되었다.삼각형의 저선용 길이를 계산하는 것은 두 개의 제곱합에 제곱근 함수를 사용하여 가능하지만, 하이픈(x, y)은 매우 크거나 매우 작은 숫자를 제곱할 때 발생하는 문제를 피한다.자연식을 사용하여 계산하면,
어느 한 입력이 무한하면 결과는 무한하다.이는 다른 입력의 가능한 모든 값에 대해 사실이기 때문에 IEEE 754 부동소수점 표준은 다른 입력 내용이 숫자(NaN)가 아닌 경우에도 참으로 유지되도록 요구한다.[8]
계산순서
순진한 구현의 어려움은 중간 결과를 확장된 정밀도로 계산하지 않는 한 x + 개가 넘치거나 부족할 수 있다는 것이다.일반적인 구현 기법은 필요한 경우 값을 교환하여 x y}}과와) 동일한 형식을 사용하는 것이다.
/ 의 계산은 과 이(가) 모두 0이 아니면 오버플로될 수 없다./ 언더플로우인 경우 최종 결과는 의정밀도 에서 올바른 x {\ x 과와) 같다.제곱근은 1과 2 사이의 값으로 계산된다.마지막으로 x에 의한 곱셈은 과소 흐름할 수 없으며, 결과가 너무 커서 나타낼 수 없을 때만 오버플로된다.
이 이행은 일반적으로 곱셈과 덧셈이 분할과 제곱근보다 훨씬 빠르기 때문에 순진한 이행 비용을 배가할 수 있는 부동소분할이 추가로 필요하다는 단점이 있다.
보다 복잡한 구현에서는 입력 내용을 더 많은 사례로 나누어 이를 회피한다.
- x 이 (가) y 보다 훨씬 큰 경우 y x 약 x .
- 개가 오버플로되면 및 x x에 작은 스케일 팩터(예: IEEE 단일 정밀도의 경우−64 2)를 곱한 후, 이제 오버플로되지 않는 순진한 알고리즘을 사용하고 결과를 (대) 역(예: 2)으로64 곱하십시오.
- 개의 언더플로우인 경우 위와 같이 스케일링하되 스케일링 계수를 반전하여 중간 값을 스케일업하십시오.
- 그렇지 않으면, 순진한 알고리즘을 사용해도 안전하다.
추가 기법을 사용하면 결과를 더 정확하게 계산할 수 있다(예:[9] ulp 1개 미만).
프로그래밍 언어 지원
이 기능은 CSS,[10] C++11,[11] D,[12] Go,[13] JavaScript(ES2015년 이후),[14] 줄리아,[15] 자바(프로그래밍 언어) (버전 1.5 이후),[16] 코틀린,[17] MATLAB,[18] PHP,[19] 파이톤,[20] 루비,[21] 러스트,[22] 스칼라 등 많은 프로그래밍 언어와 라이브러리에 존재한다.[23]
참고 항목
- 유클리드 거리
- 알파 최대 + 베타 최소 알고리즘
- 메타퐁은 피타고라스 덧셈과 뺄셈을 내장 작전으로 하고 있다.
++
그리고+-+
각각
참조
- ^ Moler, Cleve; Morrison, Donald (1983). "Replacing square roots by Pythagorean sums". IBM Journal of Research and Development. 27 (6): 577–581. CiteSeerX 10.1.1.90.5651. doi:10.1147/rd.276.0577.
- ^ Johnson, David L. (2017). "12.2.3 Addition in Quadrature". Statistical Tools for the Comprehensive Practice of Industrial Hygiene and Environmental Health Sciences. John Wiley & Sons. p. 289. ISBN 9781119143017.
- ^ "SIN (3M): Trigonometric functions and their inverses". Unix Programmer's Manual: Reference Guide (4.3 Berkeley Software Distribution Virtual VAX-11 Version ed.). Department of Electrical Engineering and Computer Science, University of California, Berkeley. April 1986.
- ^ Beebe, Nelson H. F. (2017). The Mathematical-Function Computation Handbook: Programming Using the MathCW Portable Software Library. Springer. p. 70. ISBN 9783319641102.
- ^ D.B. Schneider, 측정 시스템의 오류 분석, 1962년 표준 실험실 회의의 진행, 94페이지
- ^ J.T. Bushberg 외, The Essential Physics of Medical Imaging, 섹션 10.2.7, Wolters Kluwer Health
- ^ Falmagne, Jean-Claude (2015). "Deriving meaningful scientific laws from abstract, "gedanken" type, axioms: five examples". Aequationes Mathematicae. 89 (2): 393–435. doi:10.1007/s00010-015-0339-1. MR 3340218. S2CID 121424613.
- ^ Fog, Agner (2020-04-27). "Floating point exception tracking and NAN propagation" (PDF). p. 6.
- ^ Borges, Carlos F. (14 June 2019). "An Improved Algorithm for hypot(a,b)". arXiv:1904.09481 [math.NA].
- ^ Cimpanu, Catalin. "CSS to get support for trigonometry functions". ZDNet. Retrieved 2019-11-01.
- ^ "Hypot - C++ Reference".
- ^ "STD.math - D Programming Language".
- ^ "Math package - math - PKG.go.dev".
- ^ "Math.hypot() - JavaScript MDN".
- ^ "Mathematics · the Julia Language".
- ^ "Math (Java 2 Platform SE 5.0)".
- ^ "hypot - Kotlin Programming Language". Kotlin. Retrieved 2018-03-19.
- ^ "Square root of sum of squares (Hypotenuse) - MATLAB hypot - MathWorks Benelux".
- ^ "PHP: Hypot - Manual".
- ^ "Math — Mathematical functions — Python 3.9.7 documentation".
- ^ "Module: Math (Ruby 3.0.2)".
- ^ "F64 - Rust".
- ^ "Scala Standard Library 2.13.6 - scala.math".
추가 읽기
- Dubrulle, Augustin A. (1983). "A class of numerical methods for the computation of Pythagorean sums" (PDF). IBM Journal of Research and Development. 27 (6): 582–589. CiteSeerX 10.1.1.94.3443. doi:10.1147/rd.276.0582..