Main Content

hypot

二乗和の平方根 (斜辺)

説明

C = hypot(A,B) はアンダーフローとオーバーフローを回避するように計算された、次の式の結果を返します。

C = sqrt(abs(A).^2 + abs(B).^2)

すべて折りたたむ

長さが 34 の隣辺をもつ直角三角形の斜辺を計算します。

C = hypot(3,4)
C = 5

hypot を使用する場合と、基本的な hypot の方程式を M コードでコーディングする場合との差異を調べます。

hypot と根本的には同じ基本関数を実行する無名関数を作成します。

myhypot = @(a,b)sqrt(abs(a).^2+abs(b).^2);

myhypot では、hypot と同じアンダーフロー動作とオーバーフロー動作についての検討はなされません。

myhypot が有用な値を返す上限を求めます。このテスト関数は約 1e154 で最大に達し、そこで無限値の結果が返されることがわかります。

myhypot(1e153,1e153)
ans = 1.4142e+153
myhypot(1e154,1e154)
ans = Inf

関数 hypot を使用して同様に実行すると、関数 hypot が最大でおよそ 1e308 の値まで機能することを確認できます。この値は、使用しているコンピューターの realmax の値 (表現可能な最大の倍精度浮動小数点数) とほぼ同じです。

hypot(1e308,1e308)
ans = 1.4142e+308
hypot(1e309,1e309)
ans = Inf

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。入力 AB は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、AMN 列の行列で、B がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

一方または両方の入力が NaN である場合、hypotNaN を返します。

データ型: single | double
複素数のサポート: あり

詳細

すべて折りたたむ

IEEE 準拠

実数入力の場合、hypot の動作の一部が IEEE®-754 Standard で推奨されている動作とは異なります。

  MATLAB® IEEE

hypot(NaN,Inf)

NaN

Inf

hypot(NaN,-Inf)

NaN

Inf

hypot(Inf,NaN)

NaN

Inf

hypot(-Inf,NaN)

NaN

Inf

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考

| |