【作成中】 EditToHeaderToFooter

概要 EditToHeaderToFooter

世の中には実数を全て厳密に表すことができず、実験や工学では近似値として扱う必要がある。
そこで、有効数字という概念が登場し、近似値が表すことになる値の区間を考える必要がある。
有効数字を正しく扱えないと、正しい結果が保障されなくなる。

しかし、世の中には便利な区間表記が無いせいか、
高校や大学の授業で有効数字の扱い方を教しえるものの、
有効数字の誤差を区間として厳密に扱う例はあまり見かけない。

そこで、最近見かけた誤差の問題を区間として扱ってみる。

問題 EditToHeaderToFooter

https://twitter.com/y_bonten/status/649834242617118720 より
大きい整数の桁数を予測する問題において、誤答に至る例が紹介された。
ご丁寧に、正解とされた方も、有効数字に対する配慮が足りないがために、
当たりが悪ければ誤解と成りうることまで言及されている。

例題に丁度良いので、以下引用:

〔教師による不正解〕

  $$ \log_{10} 36^{2001} $$$$ = $$$$ \log_{10} $$$$ 6^{4002} $$$$ = $$$$ 4002 $$$$ \log_{10} $$$$ 6 $$

  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ ( $$$$ \log_{10} $$$$ 2 $$$$ + $$$$ \log_{10} $$$$ 3 $$$$ ) $$

  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ \times $$$$ ( $$$$ 0.3010 $$$$ + $$$$ 0.4771 $$$$ ) $$

  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ \times $$$$ 0.7781 $$$$ = $$$$ 3113.9562 $$

よって,

  $$ 311\iro[ak]3 $$$$ \log_{10} 36^{2001} $$$$ 311\iro[ak]4 $$

したがって,

  $$ 36^{2001} $$$$ 311\iro[ak]4 $$桁の整数である。

〔生徒による正解〕

  $$ \log_{10} 36^{2001} $$$$ = $$$$ \log_{10} $$$$ 6^{4002} $$$$ = $$$$ 4002 $$$$ \log_{10} $$$$ 6 $$

  

  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ \times $$$$ 0.7782 $$

  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 3114.3564 $$

よって,

  $$ 311\iro[ak]4 $$$$ \log_{10} 36^{2001} $$$$ 311\iro[ak]5 $$

したがって,

  $$ 36^{2001} $$$$ 311\iro[ak]5 $$桁の整数である。

結論から言うと、有効数字の観点から、どちらも「よって」が言えない。
両方とも対数を有効数字4桁の近似値に直しているため、
結果が有効なのは4桁までしかなく、一の位が変わり得る。

区間演算で見る有効数字 EditToHeaderToFooter

区間演算による解答例 EditToHeaderToFooter

以下では、同じ問題を区間演算で考え得るずれを可視化してみる。
なお、ここでは以下の誤差表記を用いる。

凌宮表記$$ a{:}.b $$$$ = $$$$ \{ $$$$ x $$$$ \pipe $$$$ a $$$$ x $$$$ b $$$$ \} $$
工学表記$$ k^{+b}_{-a} $$$$ = $$$$ (k-a){:}.(k+b) $$
$$ k{\pm}a $$$$ = $$$$ (k-a){:}.(k+a) $$

まずは、本当に誤答に至った 〔教師による不正解〕
  $$ \log_{10} 36^{2001} $$$$ = $$$$ \log_{10} $$$$ 6^{4002} $$$$ = $$$$ 4002 $$$$ \log_{10} $$$$ 6 $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ ( $$$$ \log_{10} $$$$ 2 $$$$ + $$$$ \log_{10} $$$$ 3 $$$$ ) $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ \in $$$$ 4002 $$$$ \times $$$$ ( $$$$ 0.3001 $$$$ + $$$$ [-0.00005{:}.0.00005] $$$$ + $$$$ 0.4771 $$$$ + $$$$ [-0.00005{:}.0.00005] $$$$ ) $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 4002 $$$$ \times $$$$ ( $$$$ 0.7781 $$$$ + $$$$ [-0.0001{:}.0.0001] $$$$ ) $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 3113.9562 $$$$ + $$$$ [-0.4002{:}.0.4002] $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 3113.5560{:}.3114.3564 $$
よって、$$ 3113.5560 $$$$ \log_{10} 36^{2001} $$$$ 3114.3564 $$
したがって、$$ 36^{2001} $$$$ 3114 $$または$$ 3115 $$桁の整数である。

つぎに、正答とされている 〔生徒による正解〕
  $$ \log_{10} 36^{2001} $$$$ = $$$$ \log_{10} $$$$ 6^{4002} $$$$ = $$$$ 4002 $$$$ \log_{10} $$$$ 6 $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ \in $$$$ 4002 $$$$ \times $$$$ ( $$$$ 0.7782 $$$$ + $$$$ [-0.00005{:}.0.00005] $$$$ ) $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 3114.3564 $$$$ + $$$$ [-0.2001{:}.0.2001] $$$$ ) $$
  $$ \phantom{\log_{10} 36^{2001}} $$$$ = $$$$ 3114.1563{:}.3114.5565 $$
よって、$$ 3114.1563 $$$$ \log_{10} 36^{2001} $$$$ 3114.5565 $$
したがって、$$ 36^{2001} $$$$ 3115 $$桁の整数である。

不正解の方は下限の$$ 3113.5560 $$と上限の$$ 3114.3564 $$の整数部が異なるため、
推定できる桁数が唯一に決まらず、幅を持った解答になる。
対して、正解の方は上限$$ 3114.1563 $$と下限$$ 3114.5565 $$の整数部が一致し、
推定できる桁数が唯一に決まる。

相違の原因 EditToHeaderToFooter

結論として、誤差の話ではあるが、所謂1桁増やせば済む問題ではなく、
一般的な誤差表記では見えない厄介なことが起きている。

ここで言う一般的な誤差表記は、四捨五入に基づく表記法である。
表記値を中心に、最小桁の重みに等しい幅の誤差を持つ区間と決められている。

例えば、上記の計算では対数の値を表す小数が該当する。
$$ 0.3001 $$$$ 0.30005{:}.0.30015 $$という区間を表し、
$$ \log_{10} $$$$ 2 $$$$ = $$$$ 0.3001 $$は対数の値が区間の中に存在することを意味する*1

誤差付き数に関して、単純な加法も厳密に成立たないのが厄介な問題である。
問題を単純にするため、有効数字1桁の$$ 1 $$$$ + $$$$ 1 $$$$ = $$$$ 2 $$について考えると:

  $$ 1 $$$$ + $$$$ [-0.5{:}.0.5] $$$$ + $$$$ 1 $$$$ + $$$$ [-0.5{:}.0.5] $$$$ = $$$$ 2 $$$$ + $$$$ \iro[ak]{[-1{:}.1]} $$$$ \iro[ak]{\neq} $$$$ 2 $$$$ + $$$$ \iro[ak]{[-0.5{:}.0.5]} $$

両方の$$ 1 $$とも$$ 0.9 $$から近似された場合、$$ 0.9 $$$$ + $$$$ 0.9 $$$$ = $$$$ 1.8 $$$$ \approx $$$$ 2 $$で問題無いが、
両方の$$ 1 $$とも$$ 0.6 $$から近似された場合、$$ 0.6 $$$$ + $$$$ 0.6 $$$$ = $$$$ 1.2 $$$$ \approx $$$$ 1 $$$$ \neq $$$$ 2 $$となる。
$$ 1 $$$$ + $$$$ 1 $$$$ = $$$$ 2 $$はもはや成立せず、$$ 1 $$$$ + $$$$ 1 $$$$ \supset $$$$ 2 $$の関係で近似されているのが分る。

同様に、$$ \log_{10} $$$$ 2 $$$$ + $$$$ \log_{10} $$$$ 3 $$$$ = $$$$ \log_{10} $$$$ 6 $$が厳密に成り立つものの、
対応する$$ 0.3001 $$$$ + $$$$ 0.4771 $$$$ = $$$$ 0.7782 $$$$ 0.3001 $$$$ + $$$$ 0.4771 $$$$ \supset $$$$ 0.7782 $$である。
加算の方が区間が広いため、推定できる桁数が唯一でなくなるのが区間演算の結果である。

誤答する可能性がある、もう一つの原因 EditToHeaderToFooter

*1 そのため、凌宮数学では一般的な$$ = $$$$ \approx $$の他に、明示的に$$ \in $$を使うこともある。

まとめ・つなぎ EditToHeaderToFooter

対数の有効数字を扱った例: http://photo-m.tp.chiba-u.jp/~yjo/tips/sign_figures.html

リロード   新規 編集 凍結 差分 添付 複製 改名   数学 一覧 検索 最新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2015.1030 (金) 1012.1400 (578d)