• 締切済み

有効数字(有効桁数)と四捨五入について・・・。

自分は現在高校生です。物理化学数学でカテゴリ迷ったのですがこちらに。 四捨五入、有効数字に関する質問は過去にもあるのですが、何か腑に落ちないので質問させて貰います。 学校では、 http://www.fnorio.com/0034significant_figure1/significant_figure.htm にあるように、「有効数字+1桁までを計算して結果を出し、その結果を有効数字にまとめろ」と習います。 しかしこれをやってしまうと、以下有効数字による表記として、 ア・・・1.1+1.445=2.545→(有効数字2桁なので四捨五入)→2.5 イ・・・1.1+1.445→(まず有効数字を3桁にしてみる) →1.1+1.45=2.55→(有効数字2桁なので四捨五入)→2.6 となり答えが違ってきます。 じゃあ有効数字+2桁まで計算すればいいのかと思うと、 ウ・・・1.1+1.4495=2.5495→(有効数字2桁なので四捨五入)→2.5 エ・・・1.1+1.4495→(有効数字4桁にしてみる)→1.1+1.450=2.550→(有効数字2桁なので四捨五入)→2.6 となりやっぱり答えが変わるパターンがあります。 乗除については、 (四捨五入せずに)積を計算→結果を有効数字+1桁に変換→・・・ なんてことを繰り返していると+1桁程度では厳密に計算したものとかなり違ってくると思います。 実際、高校の物理や化学ではア~エは全部正解にしてくれると思うのですが(エはよく分かりませんが・・・)、数学的にはどうなのでしょうか。 また、誤差の大きくなってしまう乗除はどうすればいいのでしょうか。

みんなの回答

  • usokoku
  • ベストアンサー率29% (744/2559)
回答No.7

>有効数字+1桁までを計算して結果を出し、その結果を有効数字にまとめろ は 有効桁をもっとも有効桁の少ない数に合わせて加法・減法を行います。 1.1+1.445= 1.1+1.4 = 2.5 です。 ところが乗法・除法の場合の、次の様にひとつ下に数値が出てくる場合に「まとめる」作業が入り 1.0/3.0 = 0.333... = 0.33 と、3桁目まで求めてししゃごにゅうし、二桁にします。 面倒なのがルートが入る場合で、3桁まで求める場合には9桁まで計算して根号を求め4桁目を四捨五入となります(この計算を要求する入試問題があり、見本の回答ではこのような取り扱いになっています)。 以上が高等学校教育以下の範囲です。ただし、10年以上前の内容ですから現在は変わっているかもしれません。 商取引の場合には、JIS Z 8401 によって規定されている場合が多く、学校で使う四捨五入が使われていません。 大学教育の場合には、別の計算方法を取っているときがあります。電卓で数値をそのまま入れて、最後に1回まとめる、という方法を使う場合です。

  • masa2211
  • ベストアンサー率43% (178/411)
回答No.6

>イ、エが間違っていることは理解しました イ、エも、別に間違っていません。これでもいいのです。 要するに、最初に有効桁を合わせてから計算してもかまわないのであって、それより多い桁で計算し、最後の最後で丸めてもかまいません。 筆算、手回し計算機、計算尺などで計算していた時代は、 桁数が多いと計算も大変なので、最初に桁を合わせてから計算していました。 コンピュータで計算させる場合、コンピュータ内部の有効桁数は 約15桁(EXCELなどの場合)であり、 桁が少ないと計算が速い、というような現象が起こるわけでも無いので、 15桁で計算しておいて、表示だけ丸めて表示する、というのが最も楽です。 (いちいち四捨五入するほうが面倒。) で、計算方法により計算結果が微妙に異なりますが、無視してよい範囲と考えるのが普通の考えです。 >+1桁目に影響を与えないように、+2桁以降は切り捨てる 私は、+1桁はいらない、といっており、 +1桁は使う、+2桁以降は切り捨て のほうが誤差は出にくい関係上、この方法もアリと答えるしかありません。 ただ、+2桁以降は切捨 という計算方法は初耳です。 切り捨てることで、具体的にどんな誤差に対して強くなるのか、見当がつきません。 2進数の場合の切捨てなら意味はわかるのですが、10進数だと意味不明です。 切り捨てる場合の具体的な良さを確認してからにしないと、切捨てはマズイでしょう。

oriyama
質問者

お礼

様々な回答ありがとうございます。 各方の回答は自分なりによく読んだつもりなのですが、 失礼ながら各方で述べていることが違う気がして混乱しています。 結局の所、 (考えられる最小値) ≦(丸めながら計算して出した結果) ≦(考えられる最大値) を満たす結果を出す丸め方、アルゴリズムのようなもの(No.4の方が言われているような)は存在するのでしょうか(真面目に全て計算して最後に丸めるという選択肢以外で)。 というか、満たさなければならないのでしょうか。 なお、自分がイを間違っていると思ったのは これを満たしていないからです(考えられるイの最大値は2.5955のはずですよね?)。

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.5

有効桁数による精度の表現は、四則計算で保存されません。 物理や化学の実験データを操作するための規約であって 数学とはあまり縁のない考え方、と考えたほうがよいのでは? と思います。 このカテゴリの過去の質問にある例ですが、 32.1-32.05 の計算を考えてみると、 32.05≦x<32.15 32.045≦y<32.055 の範囲の x,y について、 差の範囲は -0.005<x-y<0.105 です。 小数第何位かを四捨五入することで あるひとつの数になるような区間で、この範囲に含まれるもの はありません。 x-y を表す有効数字?桁の小数は、存在しないのです。 あまり考えずに、そんなものだと思って1~2桁余分につけて計算し、 最後に有効精度に丸めるようにしては、どうでしょう。

noname#221368
noname#221368
回答No.4

 これはもしかして、爆弾発言なのかな?。  まず、有効数字何桁と言われたら、個々の数値をその「有効桁数+1」に先に丸めてから計算し、結果をもう一回「有効桁数で」四捨五入するのが基本です。 (1)×と/しかない場合  この場合a×b/cなどでは、a,b,cを先に「上から」「有効桁数+1」に丸めて計算した結果を「上からの有効桁数で」四捨五入したものと、フル精度で計算した結果を「上からの有効桁数で」四捨五入したものは、等しくなるはずです(違ってたら、私が浅はかでした)。 (2)+,-がある場合。  この場合の有効桁数の意味は、「小数点以下何桁」です。そして本当は、「有効桁数+1」ではなく、「有効桁数+n」であり、nは「+,-の個数」によって決めなければいけません。  例えば「小数点以下0桁」が指定の時、+,-が10個あれば、0.1のオーダーではなく、0.1/10=0.01のオーダーでないと、フル精度で計算した結果を四捨五入したものと、違ってくる可能性があります。 (3)でも  たぶん物理だと思いますが、でも高校では、+,-が10個も続くような計算になる問題は、たぶん出しません。そのために、+1桁で計算して結果を四捨五入したものが認められているのだと思います。+,-が一回なら、+1桁ではずれる事は、ほとんどありません。  もちろんフル精度の四捨五入結果も正解とするように、考慮されているとは思います。  と思ってるんですが、爆弾発言でしょうか?。

oriyama
質問者

お礼

ご意見ありがとうございます。 しかし、(2)の方法で、自分の書いた例のア、イは答えが変わってきていると思うのですが・・・。 解釈間違っているでしょうか? 細かいことはNo.6の方の方に書かせていただきました。

  • masa2211
  • ベストアンサー率43% (178/411)
回答No.3

>「有効数字+1桁までを計算して結果を出し、その結果を有効数字にまとめろ」と習います。 参照HPには、そのような記述は見当たりません。 そもそも、 ・有効数字+1桁までを計算 という計算が可能である保証がありません。 たとえば、年平均気温を求めたいとして、 気象庁発表の日平均気温は0.1度までしか発表されません。 有効数字+1桁までを計算するには、0.01度単位で気温がわからない限り不可能です。 したがって、数字を足す(掛ける)ごとに有効桁にまるめていく、という方法で、工学的には一向にかまいません。 丸めるタイミングによって最終的な回答は若干変動しますが、それは、 答としての許容範囲です。 例: 1.41+1.73+2.23というのは、 真値が最小のケース:1.405+1.725+2.225=5.355 真値は最大のケース:1.415+1.735+2.235=5.375 よって、5.36も5.37もとりうるので、どちらでもよい。 ※工学的にはこうなるということで、学校の試験の場合、本当にどちらでもよいかは謎。 あと、ちょうど有効桁で計算を行う場合、困ったことが起こるパターンが2つあります。 その1 連立方程式を解く場合。 「桁落ち」という現象が起こり、計算結果の有効桁が減ってしまう。 このため、元数字の有効桁より多めの桁で計算し、丸めは最後の1回だけとする必要があります。 その2 2つの数値の平均をとる場合。 (0.01+0.02)/2=0.015 →0.02 (0.01+0.03)/2=0.020 →0.02 (0.01+0.04)/2=0.025 →0.03 となり、四捨五入でなく常に切り上げとなってしまう。 原因:四捨五入は丸め方として平等ではなく切り上げの頻度のほうが多いためにこの現象が起こる。 対策:四捨五入でなく五捨五入(ISO31-0:1992、すなわちJIS Z8301の規則A)を使う。 ※丸め桁+1以降が、ちょうど0.5 → 丸め桁が偶数になるように。    〃      0.5以外   → 普通の四捨五入。 すなわち、丸めて整数にする場合、 13.14 → 13 14.5 →14   (14.5ちょうどの場合、および小数2位の値が不明の場合) 14.50000001→15 14.51  →15 15.499999 →15 15.5   →16  (15.5ちょうどの場合、および小数2位の値が不明の場合) という動作をします。 で、 >有効数字+1桁までを計算 というルールで用がすむなら、五捨五入なんか不要なのに、こうしたルールが 国際規格(ISO)になっている、ということは、 有効数字ちょうどで計算、という場合がしばしばある、ということにほかなりません。 >誤差の大きくなってしまう乗除はどうすればいいのでしょうか。 たとえば、有効3桁×有効4桁 (例:3.14×2.718)の場合。 遠慮することはありません。 最初に有効3桁にそろえてから計算します。つまり、 3.14×2.72を計算し、結果を3桁に丸めます。 3.14×2.72=8.5408→8.54。 3.14×2.718=8.5345→8.53なのだけど、そんなの関係ないです。 8.54でも8.53でも、どちらでもよいため。 その証明: とりうる値の範囲は 最小:3.135*2.7175=8.5194 最大:3.415*2.7185=8.5497。 8.54も8.53も、範囲内におさまっているので、どちらでもよい。

oriyama
質問者

お礼

詳しい解説ありがとうございます。じっくり読ませていただきました。 しかしno.2の方とも対比して(イ、エが間違っていることは理解しました)いろいろ考えてみたのですが、 「有効桁数に丸めながら計算」すればいいのか、 「有効桁数+2桁以下を切り捨てながら計算」すればいいのかが分かりません・・・。 例とすれば、12345.678+3.14159(加法)は 12345.678+3.142(四捨五入形式)とするべきか、12345.678+3.1415(切り捨て形式)とするべきか。 12345.678*3.14159(乗法)は 12345.7*3.14159(四捨五入形式)とするべきか、12345.67*3.14159(切り捨て形式)とするべきか。 というのが分からないのです・・・。 (+2桁切り捨て形式の方が面倒なので、四捨五入形式ですませてしまってOKなのかという意味です。この例の式だけでなくどのような式でも。)

noname#121811
noname#121811
回答No.2

イとエはおかしいです。四捨五入を繰り返すことになるので、小さな値が不当に大きくなってしまいます。計算途中は有効数字+1桁で行い、「2桁目以降は全部切り捨て」です。参考URLを読みましたが、加減計算で有効数字+1桁になるように「四捨五入」がおかしいと思います。+1桁目に影響を与えないように、+2桁以降は切り捨てるのです。

  • A-Tanaka
  • ベストアンサー率44% (88/196)
回答No.1

こんばんは。 いいところに気がつきましたね。 とりあえず、問題にあるように「有効数字+1桁で計算すればよいでしょう」。 数学的な厳密性で行けば、確かに+2桁でも、+3桁でも、はたまた+4桁で計算しても良いわけです。この場合には、「境界問題と呼ばれる問題にあたり、計算をどこで打ち切らなければならないのか?」という問題に帰結します。 基本的な考え方としては、数値解法の場合には、計算を行った後の最後の桁にどれだけの誤差が含まれているか・・を表記すればよいわけです。解析解法の場合には、そうは行かないのですが・・。 では。