LoginSignup
0
0

数値計算、統計処理などで、結果の桁数を何桁で表示するか検討することがある。

既定路線は「有効数字3桁」である。

いつも三桁とは限らない。
母集団が二桁の場合は、割合などの表示も2桁にすることがある。

母集団に関係なく、なし(0割)、1割、2割、3割、4割、5割、6割、7割、8割、9割、全部(10割)。と有効数字1桁にすることがある。

そこで、有効数字について、思いつくことをなるべく書き残してみようと思う。

<この項は書きかけです。順次追記します。>

有効数字 円(基本単位)以上

COBOL

有効数字といえば、COBOLです。
お金の額を扱うことがあります。
1円未満を切り上げ、切り捨て、四捨五入などして、円の単位まで表示する場合があります。
円単位で表現するときは、金額によって、16桁くらいになることがあります。
そこで、有効数字は桁数ではなく、円以上という表現になります。

金利計算などの際に、小数点以下を表示できる範囲で詳しく表示したり、
分数式で表したり、計算式自体を開示したりすることがありました。

他の分野でも、g以上とか、mm以上とか、単位で有効数字を切る分野、対象はいろいろあります。
最後の桁の計算も切り上げ、切り捨て、四捨五入以外に、五捨六入とかあるかもしれません。

有効数字 1桁

有効数字1桁の計算を行うのは、
、なし(0割)、1割、2割、3割、4割、5割、6割、7割、8割、9割、全部(10割)という表現で議論したい時。

例えば、比較する相手を特に想定せず、
自分がこれからやる仕事の3種類または4種類の、
力の入れ具合の構成を語るとき。

安全分析に4割、
品質管理に3割、
プログラミング言語に2割、
機械学習に1割。

といった感じで表現するとき。

4割と言っているが、実は31%から49%の範囲のことがある。
他の3つとの関係で、合計10割にするためで、
かつ、順番が大事だから、わかりやすくするために1桁で表す。

言い換えれば、厳密な量よりも、優先順位が大事な時。
状況に応じて、量はすごく変動するが、優先順位が安定していれば、1桁で十分。

細かい数字は、変化が激しいときには、有効数字の範囲について管理していると誤解を与えかねない。その意味で、有効数字は、管理対象の桁数だと言い換えることがある。

有効数字 2桁

百分率で表現する場合。
25%, 48%など。
この場合には、合計して100%にするための下一桁の桁上げ方式がいろいろある。

一番よく使う方法を紹介する。
3桁計算して、四捨五入で計算すると合計が100に満たない場合は、最終桁が4で、絶対値が一番大きいものから順に切り上げる。
最終桁で4がなければ、3で同じ処理をする。

合計が100を超える場合は、
最終桁が5で、絶対値が一番小さいものから順に切り捨てる。
最終桁5がなければ、6で同じ処理をする。

昔、プログラムを組んだことがある。
自作のプログラムは現存しないかもしれない。

有効数字3桁

計算結果の値を、プログラムなどで、計算に使う可能性がある場合に、
3桁表示するようにしている。

プログラムで使う方が、必要に応じて、2桁に丸めてから使うか、どうかをおまかせするため。

自分では計算する相手が有効数字2桁のときには、3桁のまま計算して、最終結果を2桁に丸めることが多い。
あらかじめ丸め処理をしてから、結果も丸め処理をするのは、差が拡大するかもしれないから。
計算対象、計算時間、計算量、計算結果の記録、計算方式などにより、いつもそうとは限らない。

有効数字4桁、5桁

計算の元の情報が、有効数字5桁でもらっている場合には、
計算結果を有効数字3桁にするよりは、有効数字4桁にして表示するようにしている。

場合によっては、有効数字5桁にすることもある。

課題としては、桁落ちなどで、実際の有効数字は1桁もしくは2桁くらいしかなさそうな値には、印をつけて表示することもある。

有効数字 2進数 

計算機の内部で2進数で計算しており、2進数で保持している場合に、外部に10進出力する場合は注意が必要である。2進数を表、その10進変換値を示すのはよい。 

次に計算するときも、10進表記ではなく、2進表記の方を使う場合に、有効数字は10進数で議論しない方がよい。 話をややこしくしたい場合は除いて。

演算(operation)

経済学部の卒業研究は、「等価交換原則について」で、不等式だけで交換を説明するというものです。辺のそれぞれは、倍したり足したり、引いたりはした。

工学部の卒業研究は、連立微分方程式のPade近似解法で、FORTRANの数値計算ライブラリの一部を作成した。現代制御理論のモデルを解くためである。今では、Matlabに同梱しているかもしれない。

博論は、「端末間経路選択のための片方向遅延差測定方式」で、引き算しかありません。
測定した結果を引き算する。引き算した結果の統計は、いろいろ分析する可能性はあります。ただし、横顔(profile)といって、測定項目ごとの変化の形を見て判定することが大事で、計算で求めることとは限りません。

参考資料(reference)

QiitaでもCOBOL
https://qiita.com/kaizen_nagoya/items/60596bad631956127cf8

「「FORTRAN77数値計算プログラミング」のプログラムをCとPython」をdockerで
https://qiita.com/kaizen_nagoya/items/2a961ec2de818ede717b
与件解析(data analysis)入門 仮説(195)
https://qiita.com/kaizen_nagoya/items/d9474c3bdb8ea0029bee

連立微分方程式のPade近似解法 Fortran手による最適化とコンパイラの最適化、誤差の評価
https://qiita.com/kaizen_nagoya/items/c55d29f0d7e9ebd07a31

4つのAdvent Calendarに参加して データ分析の基礎
https://qiita.com/kaizen_nagoya/items/92eabbc62764312be440

数学が理解できなくてもプログラムが書ける 仮説(33)
https://qiita.com/kaizen_nagoya/items/85c10593a9b9535bfa30

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0