• 締切済み

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

自分は現在高校生です。物理化学数学でカテゴリ迷ったのですがこちらに。 四捨五入、有効数字に関する質問は過去にもあるのですが、何か腑に落ちないので質問させて貰います。 学校では、 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/2561)
回答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桁で計算しても良いわけです。この場合には、「境界問題と呼ばれる問題にあたり、計算をどこで打ち切らなければならないのか?」という問題に帰結します。 基本的な考え方としては、数値解法の場合には、計算を行った後の最後の桁にどれだけの誤差が含まれているか・・を表記すればよいわけです。解析解法の場合には、そうは行かないのですが・・。 では。

関連するQ&A

  • 0.991を四捨五入して有効数字2桁にすると?

    0.991を四捨五入して有効数字2桁にせよ、という問について悩んでおります。 正解は、1.0のようです。これはこれで納得いくのですが、解答として0.99も棄て切れておりません。 同様に、0.99(ぴったり)を四捨五入して有効数字2桁にせよ、についてはいかがでしょうか。 やはり、1.0が正解のようなのですが、そのまま0.99が答えではないか(有効数字2桁そのままではないか)とも思われます。 正解とされているもの(1.0)では、有効数字とするための処理の結果、数値が一桁上がることを前提に、一の位を含めて有効数字をカウントしているようなのです。 内容は化学の計算問題からです(計算結果の最後の処理のところです)。 基礎的なところで恐縮ですが、お知恵を頂けるととても助かります。

  • 数字の四捨五入の考え方について

    単純に6.0 という数字があったとします。 5.5から6.4までの数字は四捨五入で6.0になりますよね?、 次に6.00という数字があった場合は、5.95から6.04までの数字が四捨五入で6.00になると考えていいのですよね? 上司から6.00の場合でも5.5から6.4までだよと言われて頭が混乱してきたのですが・・・ たぶん「どこの桁で計算するかによる」から上司と僕の回答が違うのだと思いますが、6.00と書いてあったら普通は一番小さい位で考えますよね?

  • 有効数字3桁を導く計算するときは4桁で←本当?

    有効数字3桁の答えを求める計算するときは4桁で←これは本当? 大学受験で使う化学の参考書に、 「乗除算で有効数字3桁の答えを導くとき、有効数字4桁で計算を進めていき、計算結果の4桁目を四捨五入する」 なることが書かれていました。 この通りで言うと例えば 3桁×5桁×6桁 の式を変形して 3桁×4桁×4桁 としても最終的には答えは同じになるのですよね。 なんだか信じられないです。 数学的に誤差は出ないと証明できるのでしょうか? この計算法が使えるときと使えないとき等もあれば教えていただきたいです。m(_)m

  • 概数と四捨五入

    概数の問題で子供(小6)に聞かれわかりませんでした。教えてください。 問題)商(76÷93)を上から3けたの概数で答えなさい 76÷93=0.8172・・・・ 子供は4けた目を四捨五入して答えを0.82としましたが, 正解は0.817でした。 まず上から3けたの考え方が違うようで、 こちらの過去の概数の質問を検索し「有効数字」なるものを発見しました。 簡単に考えると「ゼロは有効数字ではない」ので次の数字からひとけた目として カウントするとわかりました。(恥ずかしながら感激) もう一つわからないのが、問題には四捨五入をしなさいとは書いていないのに、 子供が当たり前のように四捨五入をしている事です。 概数の計算は問題に注釈がなくても、四捨五入をするのが一般的なのでしょうか。 そして極めつけが子供に「じゃ、もし(商の)答えが0.008172・・・だったら、 ゼロはどこまで(有効数字として)いれないの?」と聞かれ困りました。 私がしどろもどろに「小数点がつく前・・かな・・」と答えると 「あ、きっとそんな難しい問題はでないからいいよ。大丈夫。」と気をつかって もらい、なんとも情けなかったのです。 問題に書いてない場合でも概数は四捨五入をするのが一般的か? 商が0.008172・・・の場合、上から3けたの概数の答えは? おわかりになる方どうぞ教えて下さい。よろしくお願いします。

  • 四捨五入について教えてください

    四捨五入について教えてください。 一桁の数字の1から9は四捨五入するといくつになるのですか? また、0や10や20の数字は四捨五入するといくつになるのですか? 宜しくお願い致します。

  • 四捨五入で桁が変わる場合の表記方法

    仕事で、あるデータを取り扱っています。 その際に、四捨五入して計算結果を出そうとしているのですが、その場合の表記方法に悩んでいます。 例えば、3桁で表記したい場合、『11.54 → 11.5 、10.36 → 10.4』とかにします。(敢えて書くまでもないですが・・・。) しかし、そのデータが、『9.995』だった場合は、この結果を「3桁で表示させたい」と考えたとき、『10.0』とするのと『10.00』とするのは、どちらが正しいのでしょうか。 たまたま他の数値が上に上げたように『XX.X』なので、気分的には『10.0』の方が見栄えがよくていいのですが、例えば有効数字とかの数学的な見方からすると、どうでしょうか。(この数字を出すために用いた数字に3桁のものがあるため。) また、『9.994・・・』という数字を四捨五入して『10.0』とするのは反則でしょうか。 (3桁での表示(4桁目で四捨五入)という考えから) ご意見お聞かせください。 m(_ _)m

  • 切り捨て、切り上げ、四捨五入

    数学で切り捨て、切り上げ、四捨五入を習いましたが、正の数だけでした。 最近、マイナス値についての切り捨て、切り上げ、四捨五入を考えるようになりました。 切り捨て-4.2なら-4?-5?-4.8なら-4?-5? 切り上げ-4.2なら-4?-5?-4.8なら-4?-5? 四捨五入-4.2なら-4?-5?-4.8なら-4?-5? の時、それぞれいくつになるのでしょう? コンピュータで計算したいときはほしい結果がわかっているので使い分けできますが、 数学の定義としてどちらが正しいかを教えて下さい。

  • 有効数字以下を四捨五入(Java)

    初心者です。よろしくお願いします。 Javaで有効数字の桁数を与えてそれ以下を四捨五入することはできますか。 できるなら方法を教えてください。 単に少数第○位を四捨五入するとあらかじめ決めておけばsetScaleメソッドでできると思うのですが、 例えば有効数字2桁と決めておいて、 34.1→34 3.41→3.4 0.341→0.34 といった具合に四捨五入する方法をお伺いしたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 有効数字の桁数が違う場合のプラス1桁の出し方

    有効数字の桁数がそろわない場合の掛け算・割り算は途中の計算は有効数字の桁数の最小のものプラス1桁で計算し、最後に四捨五入で有効数字の桁数の最小のものにあわせると書いてあります。次の場合、どちらが適当な計算といえるのでしょうか。( )内は最終的に有効数字の桁数の最小のものに四捨五入して桁数を合わせて出した答えです。 ア.2.5×1.456=2.5×1.45 (3.6) イ.2.5×1.456=2.5×1.46 (3.7) また、次の場合はどうでしょうか。(最終的に有効数字の桁数は2桁とします) ウ.x^2=2.456 x=√2.45 (x=1.6) エ.x^2=2.456 x=√2.46 (x=1.7) 結局、最終的な有効数字の桁数の次の次の位の数字を四捨五入すべきなのかそれとも意味があまりないので捨てるべきなのか分らないのです。 悩んでいますので、どなたか教えていただけないでしょうか。よろしくお願いいたします。

  • 四捨五入して計算をする方法で謎があるんですが?

    足し算だと12+8を片方の数字を四捨五入して12+10=22 22-2=20にというふうになるじゃないですか。 *12+8=12+10-2=20 引き算だと52-7を片方の数字を四捨五入して52-10=42 42+3=45 *52-7=52-10+3=45 といった通りに四捨五入計算すれば簡単に計算できるじゃないですか。 もしかして掛け算と割り算も四捨五入計算できるのですか? 掛け算と割り算は四捨五入計算で答えを出せるのかがわかりません? もしできるんだったら計算式も詳しく教えてください!