令和2年度技術士第一次試験問題[基礎科目:解析]1-3-3

1.誤りです。要素分割を細かくすることで近似誤差を小さくすることができます。
2.誤りです。要素分割や格子幅を細かくするなど、アルゴリズムを改良することで、近似誤差を小さくすることができます。
3.正しいです。近接する2数の引き算で、桁落ち誤差は生じます。
4.誤りです。格子幅の大小に伴って、近似誤差も変化します。
5.誤りです。近似には数値誤差を伴います。

したがって、3が正解となります。

[解答:②]

もっと知るには・・・

 

 

「浮動小数点演算において、近接する2数の引き算では、有効桁数が失われる桁落ち誤差を生じることがある」
を詳しく解説してください

「浮動小数点演算において、近接する2数の引き算では、有効桁数が失われる桁落ち誤差を生じることがある」という現象について、以下で詳しく解説します。この現象は数値計算における代表的な誤差の一つであり、「桁落ち」または「桁落ち誤差」と呼ばれます。

### 1. 桁落ち誤差とは?
桁落ち誤差とは、数値計算において「非常に近い値同士の引き算」を行うときに生じる誤差のことです。この状況では、引き算によって結果の有効桁数(信頼できる桁数)が減少し、誤差が顕著になることがあります。

### 2. 桁落ち誤差の原因
浮動小数点数では、数値は有限のビット数で表現されるため、数値の精度には限界があります。浮動小数点数は「有効桁数」と「指数部」によって数を表現しており、近接する2つの浮動小数点数を引き算すると、結果が指数部分の小さな差となり、桁数が減少することで誤差が増幅されます。

例えば、浮動小数点数として以下のような2つの数を考えます:
– \( x = 1.0000001 \)
– \( y = 1.0000000 \)

この2つの数を浮動小数点数で計算しようとすると、引き算の結果は次のようになります。

### 3. 桁落ち誤差の例
具体的に、次のような計算を考えます:

\[
z = x – y = 1.0000001 – 1.0000000 = 0.0000001
\]

この結果で得られる \( z = 0.0000001 \) は非常に小さい値であり、元の数 \( x \) と \( y \) に比べて有効桁数が大きく失われていることがわかります。浮動小数点では、元の桁数を保持するためのビット数が限られているため、細かい部分が丸められたり、精度が失われたりします。

### 4. なぜ桁落ち誤差が問題になるのか?
桁落ち誤差は、計算の正確性に影響を与えるため、特に数値計算の分野では重要な問題です。計算の結果が極端に近い値同士の引き算になる場合、誤差が大きくなる可能性が高いため、得られる結果が信頼できないことがあります。

### 5. 桁落ち誤差への対策
桁落ち誤差を避けるための一般的な対策には以下のようなものがあります:

– **代数的な変形**: 式を再構成して、桁落ちが発生しにくいように計算順序を工夫することがあります。例えば、直接引き算を避けて、他の形に変換するなど。
– **多倍長演算**: 高精度の計算が必要な場合、標準的な浮動小数点数の精度を超える多倍長演算(高精度演算)を用いることで、桁落ちを軽減することができます。

### まとめ
桁落ち誤差は、浮動小数点演算において近接する2つの値の引き算を行うときに生じる誤差です。計算結果の有効桁数が大きく減少し、誤差が顕著になるため、信頼性のある数値結果を得るためには注意が必要です。

多倍長演算とはなんですか?

多倍長演算とは、通常の浮動小数点数や整数のビット数(例えば32ビットや64ビット)の範囲を超えて、高精度で数値を扱うための計算方法です。一般的なコンピュータは、標準のビット数で数値を表現しますが、多倍長演算を使うことで、数値の桁数や有効桁数を大幅に増やすことができます。これにより、非常に小さな誤差しか許容できない科学技術計算や金融計算などで役立ちます。

1. 多倍長演算の仕組み
多倍長演算では、通常のデータ型(例えば、32ビット整数型や64ビット浮動小数点型)のビット数の制限を超えて、数値を複数のデータ型の組み合わせで表現し、計算を行います。例えば、64ビットの精度では不十分な場合、128ビットや256ビット、あるいは任意の桁数で計算できるように、数値を分割して扱います。

例えば、128ビット精度が必要な場合、64ビットの整数を2つ組み合わせて1つの128ビット数として扱い、それに対して演算を行います。
演算結果の桁あふれや桁落ちを回避するために、分割された数値を個別に計算し、その結果を統合する工夫がされています。
2. 多倍長演算が必要になる理由
多倍長演算は、以下のような状況で特に重要です。

高精度計算が必要な場面: 科学技術計算や気象シミュレーション、天文学、物理学などの分野では、微小な誤差が最終結果に大きな影響を与えることがあります。このため、多倍長演算が活用されます。
金融計算: 銀行業務や金融業務での計算では、非常に高精度が求められることがあります。少数点以下の小さな誤差も許されないため、多倍長演算が必要になる場合があります。
暗号技術: RSA暗号などの公開鍵暗号では、非常に大きな整数(例えば、2048ビットや4096ビット)を扱う必要があり、通常の演算では対応できないため、多倍長演算が使われます。
3. 多倍長演算の実装
多倍長演算は、標準のコンピュータには組み込まれていないことが多いため、ライブラリや専用のアルゴリズムが用いられます。以下は、多倍長演算を実現するための一般的な方法です。

ソフトウェアライブラリの利用: 多倍長演算をサポートするライブラリ(例えば、Pythonのdecimalモジュール、GNU MP(GMP)、BigIntライブラリなど)を使用することで、多倍長演算を簡単に実装できます。
アルゴリズムの工夫: 多倍長の整数や浮動小数点数を分割して、1つの数値を複数の小さいデータ型で表現し、それぞれを計算して結果を統合することで高精度を実現します。
4. 多倍長演算のデメリット
計算速度の低下: 多倍長演算では、標準の数値型と比較して計算速度が遅くなります。特に、ビット操作や加算・乗算などを複数のデータ型に分けて実行するため、計算量が増えます。
メモリ使用量の増加: 多倍長の数値を扱うため、メモリ使用量も増加します。桁数が増えると、それに応じてメモリも多く必要となります。
まとめ
多倍長演算は、標準の数値精度を超えた高精度な計算を可能にする手法で、科学技術計算や金融計算、暗号技術などの分野で利用されます。ビット数の限界を超えた計算を実現するために、特別なアルゴリズムやライブラリが使われますが、その分計算速度やメモリ使用量には注意が必要です。

おすすめ参考書

amazon 楽天

■資格取得に関してのおすすめ記事

資格取得のその先… まず第一に「資格」自体取得したところであまり意味をなしません。資格取得はゴールではなく稼ぐための手段なのです
学歴・資金・資格なしでも人生を一発逆転できる方法とは
仕事で成果を上げるために必要な2つの「仕事の構造化」と「仕事のシステム化」について