4

以下の完全なコンテキストは、What Every Computer Scientist Should Know About Floating-Point Arithmeticの 8 ページにあります。以下では、「一般に、基数が b の場合、ulp で表される固定相対誤差は、最大 b の係数で変動する可能性がある」と述べられています。

誰かがこれの詳細な証明を与えることができますか? そして、「ulp で表される固定の相対誤差は、最大 b 倍までぐらつく可能性がある」とは正確にはどういう意味ですか。相対誤差が固定されている場合、どのように揺れたり変化したりするのでしょうか?

相対誤差は、マシン イプシロンと呼ばれる e によって常に制限されます。

...

ulp と相対誤差の違いを説明するために、実数 x = 12.35 を考えます。ここに画像の説明を入力= 1.24 x 10^1で概算されます。エラーは 0.5 ulp です。相対誤差は 0.8 e です。次に計算 8x を考えます。正確な値は 8 x = 98.8 ですが、計算値は 8 ここに画像の説明を入力 = 9.92 x 10^1 です。エラーは現在 4.0 ulp ですが、相対エラーはまだ 0.8 e です。ulp で測定された誤差は、相対誤差が同じであっても 8 倍大きくなります。一般に、基数が b の場合、ulp で表される固定相対誤差は、最大 b 倍の係数で変動する可能性があります。逆に、式として。(2) が示すように、1/2 ulp の固定誤差は、b だけ揺れる可能性のある相対誤差になります。

4

1 に答える 1

7

これは、あなたが引用したページと同じページの「一般に、基数が b の場合、ulps で表される固定相対誤差は、最大 b 倍で変動する可能性がある」の前の段落で示されています。</p>

その段落では、1.0000…0 • b eから d.dddd…d • b eまでの数値について説明しています。ここで d は、ここで使用しているように、数字 b-1 であり、同じ ULP を持ちます。ULP は次の値であるためです。最後の桁の値は、b の指数 (およびフォーマットで固定されている仮数の桁数) によって決定されます。

d.dddd…d はほぼ b であるため、これらの数値は (ほぼ) b の比率にまたがり、d.dddd…d / 1 はほぼ b になります。ただし、ULP は同じです。したがって、数に対する1つのULPの大きさは、bの比率に及びます。

2013 年 10 月 30 日の対応、編集:

そして、「ulp で表される固定の相対誤差は、最大 b 倍までぐらつく可能性がある」とは正確にはどういう意味ですか。相対誤差が固定されている場合、どのように揺れたり変化したりするのでしょうか?

エラーはULPの固定数と言われています。ただし、ULP の値は、浮動小数点値に対して固定または定数ではなく、実際には固定または定数ではありません。

ここには言語の問題があるだけです。ULP を「固定相対誤差」と呼ぶのは正確ではありません。ただし、浮動小数点の性質が値を量子化し、それらの量子が ULP であるため、ULP でエラー境界またはエラー量を表現することがあります。

ULP はおおよその相対誤差です。浮動小数点形式のスケール全体で同じ範囲にとどまります。3 桁の 10 進数形式を考えてみましょう。

  • 1.00 から 9.99 までの区間では、ULP の絶対値は .005 です。間隔内の数値に対するその値は、.005 から (ほぼ) .0005 の範囲です。
  • 1,000,000 から 9,990,000 までの区間では、ULP の絶対値は 5,000 です。間隔内の数値に対するその値は、.005 から (ほぼ) .0005 の範囲です。
  • 1.00•10 -100から 9.99•10 -100までの区間では、ULP の絶対値は .005•10 -100です。間隔内の数値に対するその値は、.005 から (ほぼ) .0005 の範囲です。

ご覧のとおり、浮動小数点数に対する ULP の値は常に小さな間隔内にとどまります。したがって、相対誤差の近似値として機能します。

浮動小数点演算における相対誤差の式が係数 b だけぐらつくという事実は、次の 2 つの数学的事実から得られます。

  • 浮動小数点演算を使用して、発生する可能性のあるエラーに関する証明を計算または導出すると、浮動小数点形式の量子化により境界が ULP または半分になるため、ULP の単位でエラーを表現していることに気付くでしょう。 ULP。
  • 浮動小数点値 x の場合、x を x で割った ULP の値は、x が浮動小数点形式の1 つの指数区間内で変化すると、係数 b で変化します。指数が変化すると、値 ULP(x)/x がリセットされます。
于 2013-10-29T14:47:32.720 に答える