「精度 (算術)」の版間の差分

削除された内容 追加された内容
m ボット: 言語間リンク 5 件をウィキデータ上の (d:Q962365 に転記)
ページの白紙化
1行目:
'''精度'''(せいど、precision)とは、数値を表現する桁数を意味する。
 
== 概要 ==
科学的には、全桁数を意味することが多いが('''[[有効数字]]'''とも呼ぶ)、小数点以下の桁数を意味することもある。工学や金融などでは小数点以下の値が重要な意味を持つため、後者の定義が便利である。
 
いずれにしても、精度とは不正確な測定結果をどこで丸めるかを示すものである。例えば、[[浮動小数点数]]の算術では演算結果は「仮数」の長さという所定の精度で丸められる。金融計算では数値はある一定の桁数で丸められる(例えば、国際通貨の為替レートは一般に小数点以下2桁で丸められる)。
 
ここでは、例として[[十進記数法|十進数]]の値 12.345 を様々な精度で丸めるとどうなるかを示す。精度が不十分であれば、[[端数処理]]によってその精度に見合った桁数で数値が丸められる。下の表は最も一般的な[[四捨五入]]で丸めを行った場合を示している。
{| class="wikitable"
|-
! 精度 !! 有効桁数での丸め !! 小数点以下での丸め
|-
| 5桁 || 12.345 || 12.34500
|-
| 4桁 || 12.35 || 12.3450
|-
| 3桁 || 12.4 || 12.345
|-
| 2桁 || 12 || 12.35
|-
| 1桁 || 1E+1 <ref group="*">1E+1 とは 1 &times; 10<sup>+1</sup> を意味する。</ref> || 12.4
|-
| 0桁 || n/a || 12
|}
<div class="references-small"><references group="*" /></div>
 
== 丸め誤差 ==
'''丸め誤差'''とは、計算で求められる数値の[[近似]]と数学的に正確な値との差である。[[数値解析]]では、近似[[方程式]]や近似[[アルゴリズム]]を使用したときの丸め誤差を予測しようとしてきた。特に有限の精度で実数を表現する際などである。丸め誤差は一種の[[量子化誤差]]である。
 
=== 例 ===
{| class="wikitable"
! 表記 !! 実際の値 !! 近似値 !! 誤差
|-
| 1/7
| 0.<span style=text-decoration:overline>142&nbsp;857</span>
| 0.142&nbsp;857
| 1/7&nbsp;000&nbsp;000
|-
| [[自然対数|ln 2]]
| 0.693&nbsp;147&nbsp;180&nbsp;559&nbsp;945&nbsp;309&nbsp;41... &nbsp;
| 0.693&nbsp;147
| 0.000&nbsp;000&nbsp;180&nbsp;559&nbsp;945&nbsp;309&nbsp;41...
|-
| [[対数|log<sub>10</sub> 2]]
| 0.301&nbsp;029&nbsp;995&nbsp;663&nbsp;981&nbsp;195&nbsp;21... &nbsp;
| 0.3010
| 0.000&nbsp;029&nbsp;995&nbsp;663&nbsp;981&nbsp;195&nbsp;21...
|-
| <math>\sqrt[3]{2}</math>([[立方根]])
| 1.259&nbsp;921&nbsp;049&nbsp;894&nbsp;873&nbsp;164&nbsp;76... &nbsp;
| 1.25992
| 0.000&nbsp;001&nbsp;049&nbsp;894&nbsp;873&nbsp;164&nbsp;76...
|-
| <math>\sqrt{2}</math>([[平方根]])
| 1.414&nbsp;213&nbsp;562&nbsp;373&nbsp;095&nbsp;048&nbsp;80... &nbsp;
| 1.41421
| 0.000&nbsp;003&nbsp;562&nbsp;373&nbsp;095&nbsp;048&nbsp;80...
|-
| [[ネイピア数|e]]
| 2.718&nbsp;281&nbsp;828&nbsp;459&nbsp;045&nbsp;235&nbsp;36... &nbsp;
| 2.718&nbsp;281&nbsp;828&nbsp;459&nbsp;045 &nbsp;
| 0.000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;235&nbsp;36...
|-
| [[円周率|π]]
| 3.141&nbsp;592&nbsp;653&nbsp;589&nbsp;793&nbsp;238&nbsp;46... &nbsp;
| 3.141&nbsp;592&nbsp;653&nbsp;589&nbsp;793
| 0.000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;238&nbsp;46...
|}
桁数が増えると丸め誤差の影響も小さくなるが、桁数に制限がある限り、[[可算無限集合]]でない実数では何らかの丸め誤差は避けられない。この種の誤差は通常の数値表現では回避できない。
 
有限精度で数値を表す際の処理方法については[[端数処理]]を参照されたい。
 
== 情報工学における精度 ==
[[情報工学]]における数値の'''精度'''とは、その数値を表現する項目の単位である。一般にビット数で表されるが、十進の桁数で表すこともある。
 
[[Java]]は[[データ型]]の精度を定めている数少ない[[プログラミング言語]]の1つであるが、下の表はその標準整数型の精度の定義を示したものである。表に示された範囲は[[2の補数]]表現で符号付整数を表した場合の範囲である。
{| class="wikitable"
|+ Java言語のデータ型の精度
|-
! 型 !! 精度(二進ビット数) !! 範囲
|-
| <code>byte</code>
| 8
| -128 から +127
|-
| <code>short</code>
| 16
| -32,768 から 32,767
|-
| <code>int</code>
| 32
| -2,147,483,648 から 2,147,483,647
|-
| <code>long</code>
| 64
| -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807
|}
 
== 関連項目 ==
* [[任意精度演算]]
* [[端数処理]]
* [[量子化誤差]]
* [[浮動小数点数]]
** [[単精度]]
** [[倍精度]]
* [[マシンイプシロン]]
 
== 外部リンク ==
* [http://mathworld.wolfram.com/RoundoffError.html Roundoff Error] at MathWorld
 
{{DEFAULTSORT:せいと}}
{{Computer-stub}}
 
[[Category:算術]]
[[Category:数値解析]]
[[Category:コンピュータのデータ]]
[[Category:数学に関する記事]]