
数学において、ピタゴラスの加法は、実数に対する二項演算であり、直角三角形の2辺から斜辺の長さを計算します。算術におけるより馴染みのある加算や乗算と同様に、ピタゴラスの加法は結合法則と可換法則の両方を満たします。
この演算は、直交座標から極座標への変換やユークリッド距離の計算に使用できます。また、直方体の直径、物理学におけるエネルギーと運動量の関係、独立したノイズ源からの総合的なノイズについて、簡略化された表記法と用語を提供します。信号処理や測定不確かさの伝播への応用では、同じ演算は直交加算とも呼ばれます。[ 1 ]この演算のスケール版は、2次平均または二乗平均平方根を与えます。
これは多くのプログラミングライブラリでhypot関数(hypotenuseの略)として利用可能であり、コンピュータ上で実行される計算精度の限界によって生じるエラーを回避するように実装されています。ドナルド・クヌースは、「コンピュータプログラムにおける平方根演算のほとんどは、ピタゴラスの加算がより広く利用可能であればおそらく回避できるだろう。なぜなら、人々は主に距離を計算する際に平方根を必要とするように思われるからだ」と書いています。[ 2 ]ピタゴラスの定理は古くからあるものですが、距離計算への応用は18世紀に始まり、この演算の様々な名称が使われるようになったのは20世紀になってからです。
意味
| 斜辺計算機 | |
|---|---|
| 1つの | 3 |
| b | 4 |
| c = a ⊕ b | 5 5 |
ピタゴラスの定理によれば、辺の長さが と の直角三角形の斜辺の長さは、次のように計算できます。この式は、ピタゴラスの加算演算を定義し、ここでは と表記します。 任意の 2 つの実数とに対して、この演算の結果は と定義されます[ 3 ] たとえば、ピタゴラスの三つ組に基づく特殊な直角三角形はとなります。[ 4 ]ただし、この例の整数結果は異常です。他の整数引数の場合、ピタゴラスの加算の結果は2 次無理数となることがあります。[ 5 ]
プロパティ
この演算は結合法則[ 6 ] [ 7 ]と可換法則[ 6 ] である。 [ 8 ]従って、この演算で3つ以上の数を組み合わせる場合、組み合わせの順序は結果に影響せず、括弧なしで次のように表すことができる。 さらに、非負の実数では、ゼロはピタゴラスの加算の単位元である。負になる可能性のある数では、ゼロとのピタゴラス和は絶対値を与える。[ 3 ]結合法則、可換法則、および(非負の数で)単位元を持つことの3つの性質は、可換モノイドの定義特性である。[ 9 ] [ 10 ]
アプリケーション
距離と直径

ユークリッド平面上の2点間のユークリッド距離は、その直交座標とによって与えられ、[ 11 ] 。同様に、3次元の点と間の距離は、ピタゴラスの定理を繰り返して求めることができる。[ 11 ]
ピタゴラスの加法は、長方形または直方体の内対角線の長さを求めることもできます。辺の長さが と である長方形の場合、対角線の長さは です。[ 12 ] [ 13 ]辺の長さが、、である直方体の場合、体対角線の長さは です。[ 13 ]
座標変換
ピタゴラスの加法(およびその関数としての実装)は、関数(逆正接の2パラメータ形式)hypotと一緒に、直交座標から極座標への変換によく使用されます。[ 14 ] [ 15 ]atan2
二次平均と偏差の広がり
有限の数の二乗平均平方根、つまり二次平均は、それらのピタゴラス和を掛け合わせたものである。これは、数の一般化された平均である。 [ 16 ]
観測値の集合の標準偏差は、平均値からの個々の偏差の二乗平均である。2つ以上の独立した確率変数を加算した場合、それらの和の標準偏差は、それらの標準偏差のピタゴラス和となる。[ 16 ]したがって、ピタゴラス和自体は、独立したノイズ源を組み合わせた場合の全体的なノイズ量を示すものとして解釈することができる。[ 17 ]
アセンブリの異なる部品の工学公差を独立したノイズとして扱う場合、それらをピタゴラス和で組み合わせることができます。 [ 18 ]物理学などの実験科学では、異なる測定不確かさの原因を組み合わせるために、求積法がよく使用されます。[ 19 ]ただし、この不確かさの伝播方法は、不確かさの原因間に相関関係がない場合にのみ適用され、[ 20 ]実験ノイズと系統的誤差を混同していると批判されてきました。[ 21 ]
他の

物理学におけるエネルギーと運動量の関係は、運動する粒子のエネルギーを記述するもので、ピタゴラスの和として表すことができます。 ここで、は粒子の静止質量、は運動量、は光速、は粒子の結果として生じる相対論的エネルギーです。[ 22 ]
信号を合成する場合、合成された信号が偏波または位相で直交し、直交位相で加算されるように配置することは、有用な設計手法となり得る。[ 23 ] [ 24 ]初期の無線工学では、この考え方は指向性アンテナの設計に使用され、他の方向から来る信号からの干渉を無効にしながら信号を受信することが可能となった。[ 23 ]同じ手法をソフトウェアに適用して無線または超音波フェーズドアレイから指向性信号を取得する場合、ピタゴラスの加算を使用して信号を合成することができる。[ 25 ]この考え方の最近の応用としては、レーザーの周波数変換の効率向上が挙げられる。[ 24 ]
触覚知覚の心理物理学では、 2種類の振動が組み合わされたときの振動の知覚強度のモデルとしてピタゴラスの加法が提案されている。 [ 26 ]
画像処理において、エッジ検出のためのソーベル演算子は、画像の勾配を決定する畳み込みステップと、それに続く各ピクセルでのピタゴラス和によって勾配の大きさを決定するステップから構成されます。 [ 27 ]
実装
1983年の論文で、クリーブ・モーラーとドナルド・モリソンは、平方根を取らずにピタゴラス和を計算する反復法について説明しました。 [ 3 ]これはすぐにハレー法の一例であると認識され、[ 8 ]行列に対する類似の演算にも拡張されました。[ 7 ]
この演算の多くの現代的な実装では、代わりに問題を平方根関数に簡約することでピタゴラス和を計算しますが、コンピュータ上で実行される限られた精度の計算から生じる誤差を回避するように設計された方法で行われます。自然数式を使用して計算すると、と 非常に大きいまたは小さい値の平方は、コンピュータで計算すると機械精度の範囲を超える可能性があります。これにより、算術アンダーフローとオーバーフローによって不正確な結果が発生する可能性がありますが、オーバーフローとアンダーフローが発生しない場合は、出力は正確な結果の2 ulp以内になります。 [ 28 ] [ 29 ] [ 30 ]関数の一般的な実装では、オーバーフローとアンダーフローの問題を回避し、さらに精度が高くなるようにこの計算を再配置します。[ 31 ]hypot
いずれかの入力がhypot無限大の場合、結果は無限大になります。これはもう一方の入力のあらゆる可能な値に対して成り立つため、IEEE 754浮動小数点規格では、もう一方の入力が非数値(NaN)の場合でもこの関係が成り立つことが要求されています。 [ 32 ]
計算順序
単純な実装の難しさは、中間結果を拡張精度で計算しない限り、オーバーフローまたはアンダーフローが発生する可能性があることです。一般的な実装手法としては、必要に応じて値を交換し、 とし、その後、同等の形式を使用すること です。
の計算は、とが両方ともゼロでない限りオーバーフローしません。アンダーフローした場合、最終結果は に等しくなり、これは計算の精度の範囲内で正しい値です。平方根は1と2の間の値で計算されます。最後に、 による乗算はアンダーフローせず、結果が表現できないほど大きい場合にのみオーバーフローします。[ 31 ]
この並べ替えの欠点の一つは、 による追加の除算であり、これにより計算時間が長くなり、計算精度も低下します。より複雑な実装では、入力をより多くのケースに分割することで、これらのコストを回避します。
- が よりもはるかに大きい場合、は機械精度 の範囲内になります。
- オーバーフローが発生した場合、との両方に小さなスケーリング係数(たとえば、IEEE 単精度の場合は 2 −64 )を掛け、オーバーフローしない単純なアルゴリズムを使用して、その結果に(大きな)逆数(たとえば、 2 64 )を掛けます。
- アンダーフローの場合は、上記と同じようにスケーリングしますが、スケーリング係数を逆にして中間値をスケールアップします。
- それ以外の場合、単純なアルゴリズムは安全に使用できます。
追加の技術により、単純なアルゴリズムよりも正確に結果を計算することが可能となり、例えば1 ulp未満まで計算することが可能になる。[ 31 ]研究者らは、2つ以上の値のピタゴラス和を計算するための類似のアルゴリズムも開発している。[ 33 ]
高速近似
アルファマックスプラスベータミニアルゴリズムは、比較、乗算、加算のみを用いてピタゴラス加算を高速に近似するアルゴリズムであり、誤差が正しい結果の4%未満の値を生成します。 パラメータとを慎重に選択することで、このアルゴリズムは次のように計算されます。[ 34 ]
プログラミング言語のサポート
hypotピタゴラスの加算関数は、多くのプログラミング言語とそのライブラリに 関数として存在します。これらには、 CSS、[ 35 ] D、[ 36 ] Fortran、[ 37 ] Go、[ 38 ] JavaScript(ES2015 以降)、[ 11 ] Julia、[ 39 ] MATLAB、[ 40 ] PHP、[ 41 ] Python [ 42 ] が含まれます 。C ++11には、の 2 つの引数バージョンが含まれておりhypot、 の 3 つの引数バージョンはC++17以降に含まれています。[ 43 ]のJava実装[ 44 ] は、 Apache Groovy、Clojure、Kotlin、Scalaなどの相互運用可能な JVM ベースの言語で使用できます。[ 45 ]同様に、 Rubyに含まれる のバージョンはProgress ChefなどのRuby ベースのドメイン固有言語にまで拡張されています。[ 46 ] Rustでは、2つの引数を取る関数ではなく、浮動小数点オブジェクトのメソッドとして実装されています。 [ 47 ]hypothypothypot
Metafontにはピタゴラスの加算と減算が組み込み演算として用意されており、それぞれ記号とで表されます++。+-+減算演算は次のように計算されます。
歴史
この演算の基礎となるピタゴラスの定理は古代ギリシャの数学で研究され、エジプトやバビロニアの数学でも古くから知られていた可能性がある。ピタゴラスの定理 § 歴史を参照のこと。[ 48 ]しかし、直交座標系での距離の計算にこの定理が用いられるようになったのは、1637年にルネ・デカルトが直交座標系を発明して以降のことである。直交座標系からの距離の公式は1731年にアレクシ・クレローによって発表された。[ 49 ]
この演算の「ピタゴラス加算」および「ピタゴラス和」という用語は、少なくとも1950年代から使用されており、[ 18 ] [ 50 ]、信号処理における「直交加算」としての使用は少なくとも1919年にまで遡ります。[ 23 ]
1920年代から1940年代にかけて、コンピュータが普及する以前は、複数の計算尺の設計者が平方根目盛りを装置に組み込み、ピタゴラス和を機械的に計算できるようにしていました。[ 51 ] [ 52 ] [ 53 ]研究者たちはまた、ピタゴラス和の値を近似するためのアナログ回路を研究してきました。 [ 54 ]
参考文献
- ^ジョンソン、デイビッド・L. (2017). 「12.2.3 求積法による加法」 .産業衛生と環境保健科学の包括的実践のための統計ツール. ジョン・ワイリー・アンド・サンズ. p. 289. ISBN 9781119143017。
- ^ a b Knuth, Donald E. (1986). The METAFONTbook . Addison-Wesley. p. 80.
- ^ a b c Moler, Cleve ; Morrison, Donald (1983). 「平方根をピタゴラス和に置き換える」 . IBM Journal of Research and Development . 27 (6): 577– 581. CiteSeerX 10.1.1.90.5651 . doi : 10.1147/rd.276.0577 .
- ^この例はMoler & Morrison (1983)からの引用です。Dubrulle (1983)はさらに2つの整数ピタゴラス数列(119,120,169)と(19,180,181)を例として挙げています。
- ^ Ellis, Mark W.; Pagni, David (2008年5月). 「ジオボードにおける線分の長さの探究」.中学校における数学教育. 13 (9). 全米数学教員協会: 520–525 . doi : 10.5951/mtms.13.9.0520 . JSTOR 41182606 .
- ^ a bファルマーニュ、ジャン=クロード(2015)。 「抽象的な「下段研」タイプの公理から有意義な科学法則を導き出す: 5 つの例」。数学の方程式。89 (2): 393–435。土井: 10.1007/s00010-015-0339-1。MR 3340218。
- ^ a b Incertis, F. (1985年3月). 「行列のピタゴラス和を計算するより高速な方法」. IEEE Transactions on Automatic Control . 30 (3): 273– 275. doi : 10.1109/tac.1985.1103937 .
- ^ a b Dubrulle, Augustin A. (1983). 「ピタゴラス和の計算のための数値計算法のクラス」 . IBM Journal of Research and Development . 27 (6): 582– 589. CiteSeerX 10.1.1.94.3443 . doi : 10.1147/rd.276.0582 .
- ^ペナー、RC (1999).離散数学:証明技法と数学的構造. ワールド・サイエンティフィック. pp. 417– 418. ISBN 9789810240882。
- ^デザ、ミシェル・マリー;デザ、エレナ(2014)。距離の百科事典。スプリンガー。 p. 100.土井:10.1007/978-3-662-44342-2。ISBN 9783662443422。
- ^ a b c Manglik, Rohit (2024). 「Section 14.22: Math.hypot」 .プロフェッショナル向けJava Scriptノート. EduGorilla. p. 144. ISBN 9789367840320。
- ^マイヤー、JGA (1902). 「225. 長方形の長さと幅が与えられた場合の対角線の求め方」 .機械製図と機械設計の簡単レッスン:自習用編、第1巻. インダストリアル・パブリケーション・カンパニー. p. 133.
- ^ a bグリーザー、ダニエル (2018). 「6.2 直方体の対角線」 . 『数学の探求:問題解決と証明』. シュプリンガー学部数学シリーズ. シュプリンガー・インターナショナル・パブリッシング. pp. 143– 145. doi : 10.1007/978-3-319-90321-7 . ISBN 9783319903217。
- ^ 「SIN (3M): 三角関数とその逆関数」 . Unixプログラマーズ・マニュアル: リファレンスガイド(4.3 Berkeley Software Distribution Virtual VAX-11 Version ed.). カリフォルニア大学バークレー校 電気工学・コンピュータサイエンス学部. 1986年4月.
- ^ Beebe, Nelson HF (2017). 『数学関数計算ハンドブック:MathCWポータブルソフトウェアライブラリを用いたプログラミング』 Springer. p. 70. ISBN 9783319641102。
- ^ a b Weisberg, Herbert F. (1992).中心傾向と変動性. 社会科学における定量的応用. 第83巻. Sage. pp. 45 , 52–53 . ISBN 9780803940079。
- ^ DB Schneider、「測定システムにおける誤差分析」、1962年標準研究所会議議事録、94ページ
- ^ a bヒックス、チャールズ・R.(1955年3月)「現代産業における数学の活用を示す2つの問題」『数学教師』 48 ( 3)。全米数学教師協会:130-132。doi : 10.5951 / mt.48.3.0130。JSTOR 27954826。
- ^スミス、ウォルター F. (2020).実験物理学:実験室のための原理と実践. CRC Press. pp. 40– 41. ISBN 9781498778688。
- ^ドロスグ、マンフレッド (2009). 「内部不確実性への対処」. 『不確実性への対処』. シュプリンガー・ベルリン・ハイデルベルク. pp. 151– 172. doi : 10.1007/978-3-642-01384-3_8 . ISBN 9783642013843。
- ^ Barlow, Roger (2002年3月22日). 「系統的誤差:事実と虚構」.素粒子物理学における高度統計技術会議. 英国ダラム. pp. 134– 144. arXiv : hep-ex/0207026 .
- ^クーン、ケリー (2015). 「物理学の教科書を学生に教える:第2巻:空間、時間、運動」 . 物理学の学部講義ノート. シュプリンガー・ニューヨーク. p. 372. doi : 10.1007/978-1-4939-1366-4 . ISBN 9781493913664。
- ^ a b c Weagant, RA (1919年6月). 「雑音と干渉による受信」 . Proceedings of the IRE . 7 (3): 207– 244. doi : 10.1109/jrproc.1919.217434 .232ページ参照。
- ^ a b Eimerl, D. (1987年8月). 「直交周波数変換」. IEEE Journal of Quantum Electronics . 23 (8): 1361– 1371. doi : 10.1109/jqe.1987.1073521 .
- ^ Powers, JE; Phillips, DJ; Brandestini, M.; Ferraro, R.; Baker, DW (1980). 「フェーズドアレイ応用のための直交サンプリング」. Wang, Keith Y. (編). 『音響イメージング:可視化と特性評価』第9巻. Springer. pp. 263– 273. doi : 10.1007/978-1-4684-3755-3_18 . ISBN 9781468437553。
- ^ Yoo, Yongjae; Hwang, Inwook; Choi, Seungmoon (2022年4月). 「二周波重ね合わせ振動の知覚強度モデル:ピタゴラス和」. IEEE Transactions on Haptics . 15 (2): 405– 415. doi : 10.1109/toh.2022.3144290 .
- ^ Kanopoulos, N.; Vasanthavada, N.; Baker, RL (1988年4月). 「Sobel演算子を用いた画像エッジ検出フィルタの設計」. IEEE Journal of Solid-State Circuits . 23 (2): 358– 367. doi : 10.1109/4.996 .
- ^ Jeannerod, Claude-Pierre; Muller, Jean-Michel; Plet, Antoine (2017). 「二進浮動小数点演算における計算とにおける古典的な相対誤差境界は漸近的に最適である」. Burgess, Neil; Bruguera, Javier D.; de Dinechin, Florent (編).第24回IEEEコンピュータ算術シンポジウム, ARITH 2017, ロンドン, イギリス, 2017年7月24日~26日. IEEEコンピュータ協会. pp. 66– 73. doi : 10.1109/ARITH.2017.40 .
- ^ Muller, Jean-Michel; Salvy, Bruno (2024). 「斜辺関数を計算する浮動小数点アルゴリズムの有効な二次誤差境界」arXiv : 2405.03588 [ math.NA ].
- ^ Ziv, Abraham (1999) . 「斜辺関数の鋭いULP丸め誤差限界」.計算数学. 68 (227): 1143– 1148. doi : 10.1090/S0025-5718-99-01103-5 . JSTOR 2584955. MR 1648423 .
- ^ a b c Borges, Carlos F. (2021). 「アルゴリズム1014:hypot(x, y)の改良アルゴリズム」. ACM Transactions on Mathematical Software . 47 (1): 9:1–9:12. arXiv : 1904.09481 . doi : 10.1145/3428446 .
- ^霧、アグナー(2020年4月27日). 「浮動小数点例外の追跡と NAN 伝播」(PDF)。 p. 6.
- ^ Lefèvre, Vincent; Louvet, Nicolas; Muller, Jean-Michel; Picot, Joris; Rideau, Laurence (2023). 「ダブルワード演算を用いたユークリッドノルムの正確な計算」(PDF) . ACM Transactions on Mathematical Software . 49 (1) 1: 1– 34. doi : 10.1145/3568672 . MR 4567887 .
- ^ Lyons, Richard G. (2010). 「13.2 高速ベクトル振幅近似」 . 『デジタル信号処理入門』(第3版). ピアソン. pp. 13-6 – 13-8 .
- ^ Cimpanu, Catalin (2019年3月10日). 「CSSが三角関数のサポートを開始」 . ZDNet . 2019年11月1日閲覧。
- ^ "std.math.algebraic" . Phobos ランタイムライブラリリファレンス、バージョン2.109.1 . D Language Foundation . 2025年2月21日閲覧。
- ^ Reid, John (2014年3月13日). 「9.6 誤差関数とガンマ関数」. Fortran 2008の新機能(PDF) (レポートN1891). ISO/IEC JTC 1/SC 22 , WG5 国際Fortran標準化委員会. p. 20.
- ^サマーフィールド、マーク (2012). 『Go言語によるプログラミング:21世紀のアプリケーション開発』ピアソン・エデュケーション. p. 66. ISBN 9780321774637。
- ^ Nagar, Sandeep (2017). 『Juliaプログラミング入門:エンジニアと科学者向け』 Apress. p. 105. ISBN 9781484231715。
- ^ Higham, Desmond J. ; Higham, Nicholas J. (2016). 「26.9 ピタゴラス和」 . MATLABガイド(第3版). Society for Industrial and Applied Mathematics . pp. 430– 432. ISBN 9781611974669。
- ^アトキンソン、レオン、スラスキ、ゼエフ (2004). 「リスト 13.17: hypot」 . Core PHP Programming . Prentice Hall. p. 504. ISBN 9780130463463。
- ^ヒル、クリスチャン(2020年)『Pythonで科学プログラミングを学ぶ(第2版)』ケンブリッジ大学出版局、14ページ。ISBN 9781108787468。
- ^ハンソン、ダニエル (2024). 『金融のためのモダンC++学習』オライリー. 25ページ. ISBN 9781098100773。
- ^ホートン、アイヴァー (2005).アイヴァー・ホートンのJava入門 2.ジョン・ワイリー・アンド・サンズ. p. 57. ISBN 9780764568749。
- ^ van der Leun, Vincent (2017). 「Javaクラスライブラリ」 . JVM言語入門: Java, Scala, Clojure, Kotlin, and Groovy . Packt Publishing Ltd. pp. 10– 11. ISBN 9781787126589。
- ^ Taylor, Mischa; Vargo, Seth (2014). 「数学演算」 . 『Learning Chef: 構成管理と自動化ガイド』. O'Reilly Media. p. 40. ISBN 9781491945117。
- ^ 「Primitive Type f64」 . Rust標準ライブラリ. 2025年2月17日. 2025年2月22日閲覧。
- ^マオール、イーライ (2007). 『ピタゴラスの定理:4000年の歴史』 プリンストン、ニュージャージー州: プリンストン大学出版局. pp. 4– 15. ISBN 978-0-691-12526-8。
- ^マオール (2007)、133–134 ページ。
- ^ヴァン ダンツィヒ、D. (1953)。「大数の弱い法則の別の形式」(PDF)。ウィスクンデの新しい大首領。 3番目のシリーズ。1 : 129–145。MR 0056872 。
- ^ Morrell, William E. (1946年1月). 「平方数の加算のための計算尺」. Science . 103 (2665): 113–114 . doi : 10.1126/science.103.2665.113 . JSTOR 1673946 .
- ^ Dempster, JR (1946年4月). 「円形スライド尺」. Science . 103 (2677): 488. doi : 10.1126/science.103.2677.488.b . JSTOR 1671874 .
- ^ Dawson, Bernhard H. (1946年7月). 「正方形の加算のための改良された計算尺」. Science . 104 (2688): 18. doi : 10.1126/science.104.2688.18.c . JSTOR 1675936 .
- ^ Stern, TE; Lerner, RM (1963年4月). 「平方和の平方根を求める回路」. Proceedings of the IEEE . 51 (4): 593– 596. doi : 10.1109/proc.1963.2206 .