現在、情報処理試験の勉強をしているのですが、
桁落ち誤差がなぜ誤差なのかが分かりません。
有効数字(有効桁数)が減少する事の何が問題なのか、
正規化されて仮数部には0が入るだけで、
0なんだから、
誤差(誤った差)なんて無いように思えるのですが。。
複数のサイトを見てみましたが、
まとめると以下の3つのパターンの解説に大別できるように思われます。
(1)有効桁数が減少する事を桁落ち誤差と言う
⇒桁落ちによりどのような誤差が発生するのか解説がなく。
(2)正規化された部分に0以外が入ることがある。(プログラミング)
http://www.k-cube.co.jp/wakaba/server/numerical_ …
⇒正規化された部分には0が入るという前提があるので、
このサイトの桁落ちと
情報処理試験の桁落ちは前提が違う。
(3)科学技術計算では2と2.000は違うので、
桁落ちは問題
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASI …
⇒だいぶ探している答えに近い気はするが、
具体例がなく良く分からず。。
具体的な例で何が問題なのかを、
どうして誤差が発生するのか、
ご教授頂ければ幸いです。。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
の「2.4 桁落ち」で例示されている √1001 - √999 で説明します。
(計算機内部は本当なら仮数も基数も2進数ですが,メンドウなので以下,10進数の浮動小数点数形式を用います)
√1001 は 31.63858403911275… と続く無限小数です。
「0.仮数 × 10の指数」という形式で表現するなら,
「0.3163858403911275… × 10の2乗」です。
√999 は 31.60696125855821… と続く無限小数です。
こちらは「0.3160696125855821… × 10の2乗」です。
--------
次に,仮数部の長さが8桁(有効数字が8桁)の浮動小数点数形式の変数を用いて,
√1001 - √999 を計算してみます。
0.31638584 × 10の2乗(=√1001)
- 0.31606961 × 10の2乗(=√999 )
―――――――――――――――――
0.00031623 × 10の2乗
↓仮数の正規化
0.31623000 × 10の-1乗 ■結果その1■
さて。
√1001 の仮数は本来 0.31638584 だったのでしょうか? 違います。精度が8桁だからそれ以降を仕方なく丸めただけで,本来は 0.31638584[03911275…] と小数部が続く数でした。√999 も同じ。
したがって,計算途中の精度を維持できていれば,計算結果は次のようになります。
0.31638584[03911275…] × 10の2乗(=√1001)
- 0.31606961[25855821…] × 10の2乗(=√999 )
―――――――――――――――――
0.00031622[78055454…] × 10の2乗
↓仮数の正規化
0.31622[78055454…] × 10の-1乗
↓精度8桁に丸める
0.31622780 × 10の-1乗 ■結果その2■
--------
結論です。
最終的に計算結果を格納する変数が,仮数の長さ8桁という同じ形式の浮動小数点数であっても,
ほぼ等しい数同士の減算をおこなえば,
0.31623000 × 10の-1乗 ■結果その1■
のように,仮数の正規化による左3桁シフトにより末尾に無意味な0が3つ並んだ,すなわち有効けた数が実質5桁しかない「けた落ち誤差」を含んだ値になります。
反対に,計算途中における仮数長を十分長く確保していたり,計算の工夫によってほぼ等しい数同士の減算をおこなわないようにすれば(前述のja.wikipediaを参照),
0.31622780 × 10の-1乗 ■結果その2■
のように,8桁の有効けた幅をいっぱいに活かした結果を求めることができます。
(ちなみに 0.31622780 の末尾の0は無意味な0ではなく,計算の結果求められた精度としての意味を持つ0です,念のため)
No.1
- 回答日時:
桁落ちはまず例を1つ理解してから理解・検討を発展させるのがいいでしょう。
有効桁数6桁の計算機を考えます。
A=10003/7-10002/7を計算すると
A=1429-1428.8571428571・・・・・・
=1429.00-1428.86=0.14(コンピュータ出力)
正規には0.14285714286・・・
1/7=0.142857(コンピュータ出力)
有効数字が2桁と6桁と大きく差が出ます。
なぜかは別にして計算順序を変えるだけで簡単に桁落ちが起こってしまうのです。
コンピュータは有限桁数なので、計算順序を考えなさいよと言う啓蒙が
桁落ちや情報落ちです。
理屈はあとからついてきたのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校 有効数字計算 確定した値を含む 2 2023/01/18 06:03
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- 高校 高校化学、気体、温度の有効数字 3 2023/04/02 11:39
- 物理学 「NHKの時報の音は、振動数が440Hzです。この音の波長を求めましょう。ただし、音の伝わる速度を3 6 2023/03/02 18:24
- 化学 有効数字の取り扱いについて 高校化学では、測定値同士の計算結果の有効数字は、測定値に合わせるようにな 4 2022/06/30 14:07
- 統計学 統計学を独学で勉強してます。 ページ左上に誤差分散の推定量の指揮があると思いますが(青いペン) 例題 2 2023/02/12 12:34
- 統計学 統計学を独学で勉強してます。 ページ左上に誤差分散の推定量の指揮があると思いますが(青いペン) 例題 5 2023/02/12 15:39
- iPhone(アイフォーン) web上の電話番号リンクの桁区切りが、iPhoneだと特定電話番号でおかしくなるのを解決したい 1 2023/03/28 14:27
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
関連するカテゴリからQ&Aを探す
医師・看護師・助産師
薬剤師・登録販売者・MR
医療事務・調剤薬局事務
歯科衛生士・歯科助手
臨床検査技師・臨床工学技士
理学療法士・作業療法士・言語聴覚士
臨床心理士・心理カウンセラー・ソーシャルワーカー
介護福祉士・ケアマネージャー・社会福祉士
弁護士・行政書士・司法書士・社会保険労務士
フィナンシャルプランナー(FP)
中小企業診断士
公認会計士・税理士
簿記検定・漢字検定・秘書検定
情報処理技術者・Microsoft認定資格
TOEFL・TOEIC・英語検定
建築士
インテリアコーディネーター
宅地建物取引主任者(宅建)
不動産鑑定士・土地家屋調査士
マンション管理士
電気工事士
美容師・理容師
調理師・管理栄養士・パティシエ
シェフ
保育士・幼稚園教諭
教師・教員
国家公務員・地方公務員
警察官・消防士
その他(職業・資格)
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
経常利益増加率⇒マイナス÷マイ...
-
時間単位の書き方について教え...
-
公共建築工事共通費積算基準(...
-
建築用語?
-
鉄板の耐過重
-
20%減少の計算教えてください。
-
2時間45分の勤務がなんで2.75時...
-
レンタルの料金設定について
-
売り上げの15パーセントを渡さ...
-
パート面接時の筆記試験攻略方...
-
幼稚園のバザーのレジのやり方...
-
暦月の1ヶ月
-
レシピに書かれた人数分以上に...
-
IRRがマイナスになるとは?また...
-
関数電卓を使って角度を計算す...
-
パート面接での筆記試験(計算問...
-
縮尺60分の1の設計図を600分の1...
-
円錐(えんすい)の展開図の計...
-
鉄板の耐過重
-
4級基準点測量の厳密網平均計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
時間単位の書き方について教え...
-
経常利益増加率⇒マイナス÷マイ...
-
建築用語?
-
レンタルの料金設定について
-
鉄板の耐過重
-
公共建築工事共通費積算基準(...
-
売り上げの15パーセントを渡さ...
-
2時間45分の勤務がなんで2.75時...
-
レシピに書かれた人数分以上に...
-
20%減少の計算教えてください。
-
パート面接時の筆記試験攻略方...
-
縮尺60分の1の設計図を600分の1...
-
暦月の1ヶ月
-
パート面接での筆記試験(計算問...
-
IRRがマイナスになるとは?また...
-
関数電卓を使って角度を計算す...
-
残業時間を計算し且つ足りない...
-
年率の利子の計算の公式を教え...
-
玉掛けの 角度 法令基準は...
-
今接客業で仕事をしていて、医...
おすすめ情報