• 検索結果がありません。

Microsoft PowerPoint - N2_数の表現と誤差_slide.pptx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - N2_数の表現と誤差_slide.pptx"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

数の表現と誤差

-丸め誤差と打切り誤差-1

st

. 2020/04/19

L

st

. 2020/05/12

数値計算誤差の分類

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.51, McGraw Hill, 2006

Round-off error 丸め誤差

Truncation error 打切り誤差

① コンピュータのメモリー制限で、無限小数は有限桁でしか扱

えない。(どこかの桁で四捨五入して丸めている)

→ 数値を

有限桁のディジタル表現する際の精度とも言える。

② 数値解は何らかの近似を取り入れた結果である。(本来は

無限小の分割幅を有限幅で近似的に扱ったり、無限級数を

有限級数で扱わざるを得ない)

→ 解析解を近似表現する際

の精度とも言える。

どちらも「無限」を「有限」で表現しようとする所から生じる誤差

数値計算誤差=解析解(厳密解)と数値解(近似解)との相違

2種類

2種類の誤差の説明

有効数字

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.51, McGraw Hill, 2006

3

40

50

4 8 . 5

確か

不確か

有効数字3桁

certain

uncertain

アナログメータの例

ディジタルメータの例

8 7 3 2 4

4

5

4

8 7 3 2 4 . 4 5

確か

不確か

certain

uncertain

有効数字

7桁

「有効数字」とは・・・自信を持って使える数値のことで,複数の確かな

数値と1つの見積り数値から成る。

(自信がある)

(自信がない)

.

丸め誤差の例(1)

4

エクセルの組み込み関数

π = pi() の表示例

① デフォルトでは小数点以下の桁数

6桁(有効桁7桁)

② アルファベットの書いてある列の右端をクリックして表示桁

を自動拡張すると,小数点以下の桁数9桁(有効桁10桁)

③ セルの書式設定で「数値」→「小数点以下の桁数」を16に

すると17桁表示になるが,このうち有効なのは15桁のみ

つまり,

Excelにおいて,πは有効数字15桁に丸めて計算さ

れること(丸め誤差の発生)を意味している。

π=pi()

の表示

default

double crick セル書式設定(少数16桁)

3.141593 3.141592654

3.1415926535897900

(2)

丸め誤差の例(2)

分数5/3の計算結果の表示

Excel

セルの書式設定

表示形式 小数点以下の桁数 分数

5/3 の計算結果

有効桁

標準

9

1.666666667

10

数値

16

1.6666666666666700

15

数値

30 1.666666666666670000000000000000

15

指数表示

0

2.E+00

1

指数表示

10

1.6666666667E+00

11

指数表示

14

1.66666666666667E+00

15

指数表示

20

1.66666666666667000000E+00

15

Excel表示形式は,該当するセルで右クリック,セルの書式設定→

表示形式→標準 or 指数表示 を選択

セルの書式設定で小数点以下の桁数を変更して色々試すと,無限

小数の

5/3も有効桁15桁に丸めて計算されることが分かる。

打切り誤差の例(1)

sin x x

=

3

1

sin

6

x

= −

x

x

3 5

1

1

sin

6

120

x

= −

x

x

+

x

1

st

approx.

3

rd

approx.

5

th

approx.

正弦関数

y=sin(x) のマクローリン級数表示例

-3

-2

-1

0

1

2

3

4

0

1

2

3

4

y=sin(x)

x

true value

1st

3rd

5th

sin(x) のマクローリン級数表示

7 ( ) 2 3

(0)

(0)

(0)

( )

(0)

(0)

2!

3!

!

n n

f

f

f

f x

f

f

x

x

x

n

′′

′′′

=

+

+

+

+ +

( ) sin

(0) 0

f x

=

x

f

=

( ) cos

(0) 1

f x

=

x

f

=

( )

sin

(0) 0

f

′′

x

= −

x

f

′′

=

(3)

( )

cos

(3)

(0)

1

f

x

= −

x

f

= −

2 3 4 5

0

1

0

1

( ) 0 1

2!

3!

4!

5!

f x

= + +

x

x

+

x

+

x

+

x

+

3 5

1

1

sin

6

120

x

= −

x

x

+

x

+

(4)

( ) sin

(4)

(0) 0

f

x

=

x

f

=

(5)

( ) cos

(5)

(0) 1

f

x

=

x

f

=

f(x)=sin(x)をx=0の近傍でテイラー級数展開(マクローリン級数展開)すると,

右辺各項の導関数を計算すると,

求めた導関数を級数展開の式に戻すと,

整理すると,

正確さと精密さ

8

標的に対して

バラツキが少

なく的の中心

に近い

バラツキは小

さいが的外れ

Accuracy

Precision

Imprecision,

Uncertainty

Inaccuracy

(3)

誤差の定義

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.53, McGraw Hill, 2006

真値

Round-off

Truncation

真の誤差

(true error)

真のパーセント相対誤差

(true percent relative error)

しかし・・・,現実の問題で真値が求められるケースは,手計算で

理論的に解が得られる場合を除いてほとんどない。

数値計算

の場合

true value approximation

t

E

=

true error

100%

true value

t

ε

=

×

True value = approximation + error

誤差

近似値

(1)

(2)

(3)

【例題1】 真の誤差

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.53, McGraw Hill, 2006

10,000 cmの橋と10 cmの釘がある。それぞれの測定値が9,999 cmと9

cmであったとき,E

t

ε

t

を求めよ。

10000 9999 1 cm

t

E

=

=

1

100 0.01%

10000

t

ε

=

×

=

10 9 1 cm

t

E

= − =

1

100 10%

10

t

ε

=

×

=

同じ真の誤差

1 cmでも,釘の相対誤差の方がずっと大きい。

True value : 10000

答え)

近似値の誤差

11

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.53, McGraw Hill, 2006

近似値のパーセント相対誤差

approximate error

100%

approximation

a

ε

=

×

current approximatation previous appxorimation

100%

current approximation

a

ε

=

×

近似値のパーセント相対誤差

真値が分からない大半の現実問題では,真の誤差は定義はできて

も求められないので,代替えとして近似値の誤差が使われる。

繰り返し計算をして近似精度を上げようとするとき,次式が使われ

ることもある。

(近似精度が改善される前の近似値を使う)

ε

a

の値として,一般に

2-3%が判定基準として使われることが多い

が,要求レベルはシステムによって異なる。

(1)

(2)

【例題2】 近似値の誤差

12

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.53, McGraw Hill, 2006

e

0.5

をマクローリン級数展開して得られる近似値のパーセント相対誤差

をエクセルの表計算を使って求めよ。

0.5

True value :

e

=

1.648721

2 3

1

2

3!

!

n x

x

x

x

e

x

n

= + +

+

+ +

x

n Approx.

TRUE

Et

εt [%]

Ea

εa [%]

0.5 1

1 1.648721271 0.648721271 39.34693403

#VALUE!

#VALUE!

0.5 2

1.5 1.648721271 0.148721271 9.020401043

0.5 33.33333333

0.5 3

1.625 1.648721271 0.023721271 1.438767797

0.125 7.692307692

0.5 4 1.645833333 1.648721271 0.002887937 0.175162256 0.020833333 1.265822785

0.5 5

1.6484375 1.648721271 0.000283771 0.017211563 0.002604167 0.157977883

0.5 6 1.648697917 1.648721271 2.3354E-05 0.001416494 0.000260417 0.015795293

このケースでは近似値は

n=4で1.3%程度,n=5で0.16%程度の相

対誤差となることが分かる。

(1)

1.648721 1

100% 39.3%

1.648721

t

ε

=

×

=

(2)

1.5 1

100% 33.3%

1.5

a

ε

=

×

=

答え)

(4)

数値の表現方法

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.51, McGraw Hill, 2006

Fixed point representation 固定小数点

Floating point representation 浮動小数点

① 大きさの変動幅が小さい数値,主に整数に適用される。

シンプルだが,表現できる数の範囲は狭い。

② べき乗で表現することにより,対数スケールとの相性が

良くなる。大きさの変動幅が大きい数値(ミクロオーダー

からマクロオーダーの数まで一緒に扱える。)に適用され

る。表現できる数の範囲は広いが,数値刻み幅(分解

能)が変化するデメリットもある。

数値の表現方法

2種類の表現方法の説明

固定小数点による整数の表現

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

16 bit コンピュータの場合

0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1

符号

1 bit

2

13

2

12

2

11

2

10

2

9

2

8

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

14

±

1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1

173

=

173

= −

15 bit

0 :

1 :

+

7 5 3 2 0

(2

2

2

2

2 )

173

+

+ + + +

= +

7 5 3 2 0

(2

2

2

2

2 )

173

+ + + +

= −

上の例では,

【例題3】 整数の表現

15

2

13

2

12

2

11

2

10

2

9

2

8

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

14

±

16ビットコンピュータで表現できる10進数の整数の範囲を求めよ。

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

= +

32767

15

( 2

=

1)

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

= +

0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

= −

0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

= −

32767

32768

≡ −

④は③で表現できており,冗長なのでこれを

-32768に割り当てる。

つまり,

-32768 から 32767 を表現できることになる。(実際のコン

ピュータでは負の数を表現するのに

2の補数表現を利用している)

答え)

浮動小数点の表現

16 e

R

= ⋅

m b

仮数

底,基数

指数

3

156.78 0.15678 10

=

×

+

例2)

1/34=0.02941176470… を仮数4桁,基数10の浮動小数点

で表現すると

①は有効桁

3桁(10

-4

×

10

0

の精度)なので,仮数部を

10倍して指数

部を

1/10すると,②のように有効桁を4桁に増やすことができる

10

-4

×

10

-1

の精度まで保証される)。この処理を

正規化

と呼ぶ。

例1)

156.78 を仮数5桁,

基数10の浮動小数点で表

すと

0

0.0294 10

×

① 

1

0.2941 10

×

② 

exponent

base

mantissa

指数部

exponent

part

(5)

【例題4】 浮動小数点の表現

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

7 bit 浮動小数点で表現される数 0111100 を10進数で求めよ。

0 1 1 1 1 0 0

2

1

2

0

2

-1

2

-2

2

-3

仮数 m

指数の

大きさ e

指数符号

0:+, 1:-)

数値符号

(0:+, 1:-)

± ±

1 0

1 2 1 2

3

e

= − × + × = −

1 2 3

1 2

0 2

0 2

0.5

m

= ×

+ ×

+ ×

=

7 bit

3

0.5 2

0.0625

e

R

= ⋅ = +

m b

×

=

上の例では,

答え)

【例題4】 浮動小数点の表現

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

7 bit 浮動小数点で表現できる数をすべて求めてグラフ化せよ。

0 1 1 1 1 1 0

1 2 3 3

(1 2

×

+ ×

1 2

+ ×

1 2 ) 2

×

+

=

7

0 0 1 1 1 1 1

1 2 3 3

(1 2

×

+ ×

1 2

+ ×

0 2 ) 2

×

=

0.09375

0 1 1 1 1 1 1

(1 2

×

−1

+ ×

1 2

−2

+ ×

1 2 ) 2

−3

×

−3

=

0.109375

1 2 3 3

(1 2

×

+ ×

1 2

+ ×

0 2 ) 2

×

+

=

6

0 0 1 1 1 1 0

2

1

2

0

2

-1

2

-2

2

-3

± ±

1 2 3 3

(1 2

×

+ ×

0 2

+ ×

1 2 ) 2

×

+

=

5

0 0 1 1 1 0 1

0 1 1 1 1 0 1

(1 2

×

−1

+ ×

0 2

−2

+ ×

1 2 ) 2

−3

×

−3

=

0.078125

刻み幅

0.015625

=2

-3

×2

-3

刻み幅

1

=2

-3

×

2

+3

2

-3

2

+3

浮動小数点表示では,同じ仮数

mでも指数部b

e

の違いに

よって表現できる数値の刻み幅(分解能)が変化する。

0 1 2 3 4 5 6 7 8 Linear scale

【続き】 浮動小数点の表現

19

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

2

+3

2

+1

2

-3

2

-2

2

-1

2

0

2

+2 0.01 0.1 1 10 Log scale

2

+3

2

+1

2

-3

2

-2

2

-1

2

0

2

+2 刻み幅1 =2-3×2+3 刻み幅 0.015625 =2-3×2-3

答え)

オーバーフローとアンダーフロー

20

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

0 1 1 1 0 0 1

(0 2

×

−1

+ ×

0 2

−2

+ ×

1 2 ) 2

−3

×

−3

=

0.015625

0 1 1 1 0 0 0

(0 2

×

−1

+ ×

0 2

−2

+ ×

0 2 ) 2

−3

×

−3

=

0

刻み幅

0.015625

=2

-3

×2

-3 1 2 3 3

(1 2

×

+ ×

1 2

+ ×

1 2 ) 2

×

+

=

7

0 0 1 1 1 1 1

1 2 3 3

(1 2

×

+ ×

1 2

+ ×

0 2 ) 2

×

+

=

6

0 0 1 1 1 1 0

最小値

0.015625 よりも小さい数は表現できない。

これを

アンダーフローホール

と呼ぶ。

最大値

7 よりも大きい数は表現できない。

これを

オーバーフロー

と呼ぶ。

例え,有理数で有限桁の小数(例えば13/2=6.5)のような区切

りの良い小数であっても,上の場合は刻み幅が

1.0 なので 0.5

の丸め誤差を生じる。これを量子化誤差と呼ぶ。

刻み幅

1

=2

-3

×

2

+3

(6)

IEEE方式(IEEE754形式)

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

2

3

2

2

2

1

2

0

2

-1

2

-2

2

-23

±

0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

① 単精度浮動小数点数型(32ビット=4バイト)

± 2

6

2

5

2

4

2

-3

2

-4

2

-22

仮数 m : 23bit

指数 e : 8 bit

(符号

1bit含む)

符号

1bit

6 5 4 3 2 1 0

1 2

1 2

1 2

1 2

1 2

1 2 1 2

127

e

= − × + × + × + × + × + × + × = −

23 7

1 2

1.19209 10

m

= ×

=

×

− 23 127 7 38

1 2

2

1.19209 10

10

e

R

= ⋅ = + ×

m b

×

=

×

×

上の例では,

7

(

= − −

2

1)

7 7 2 2 128 128

2

2

2

2

e

b

=

38 39

10

10

23 0

2

2

m

=

7

1.19209 10

1

=

×

表現

範囲

IEEE方式(IEEE754形式)

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.60, McGraw Hill, 2006

2

-52

±

② 倍精度浮動小数点数型(64ビット=8バイト)

±2

9

m : 52bit

e : 11 bit

Sign 1

2

-1

2

1

2

-10

±

③ 半精度浮動小数点数型(16ビット=2バイト)

±2

3

m : 10bit

e : 5 bit

Sign 1

2

-1

2

1

2

-112

±

4倍精度浮動小数点数型(128ビット=16バイト)

±2

14

m : 112bit

e : 15 bit

Sign 1

2

-1

2

1 1024 1024

2

2

e

b

308 308

10

10

16 16

2

2

e

b

5 5

10

10

32768 32768

2

2

e

b

9864 9864

10

10

指数部表現範囲

Excelは倍精度を使っている

【例題5】 エクセルの数値表示限界

23

エクセルは倍精度浮動小数点数型を使って数値計算を行っている。2

n

と2

-n

の計算をスプレッドシート上で計算し,表示可能な最小値と最大

値を確認せよ。

0 1E-252 1E-196 1E-140 1E-84 1E-28 1E+28 1E+84 1E+140 1E+196 1E+252 1E+308 0 200 400 600 800 1000 1200 Log scale n 2^n 2^-n 1020 1.1236E+307 8.9003E-308 1021 2.2471E+307 4.4501E-308 1022 4.4942E+307 2.2251E-308 1023 8.9885E+307 0 1024 #NUM! 0 1025 #NUM! 0 1026 #NUM! 0 n 2n 2-n 0 1 1 1 2 0.5 2 4 0.25 3 8 0.125 4 16 0.0625 5 32 0.03125

(1E-308) オーバーフロー アンダーフロー

答え)

確認テスト

24

1. 数値計算誤差について2種類に分けて説明せよ。

2. 有効数字について説明せよ。

3. 浮動小数点のメリットとデメリットを述べよ。

4. オバーフローとアンダーフローホールについて説明せよ。

5. 16ビットコンピュータで表現できる10進数の整数の範囲を求

めよ。

6. 7 bit 浮動小数点で表現される数 0111100 を10進数で求め

よ。

7. エクセルは倍精度浮動小数点数型を使って数値計算を行っ

ている。2

n

と2

-n

の計算をスプレッドシート上で計算し,表示可

能な最小値と最大値を求めよ。

参照

関連したドキュメント

Kim, Strong convergence theorems by hybrid projection methods for equilibrium problems and fixed point problems of the asymptotically quasi-φ-nonexpansive mappings, Fixed Point

READ UNCOMMITTED 発生する 発生する 発生する 発生する 指定してもREAD COMMITEDで動作 READ COMMITTED 発生しない 発生する 発生する 発生する デフォルト.

The fixed point index is a important tool in solving positive solutions of nonlinear equations m ordered Banach space.. So what nonlinear mapping could be defined a index theory

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

項   目  単 位  桁   数  底辺及び垂線長 m 小数点以下3桁 境界辺長 m  小数点以下3桁

NISSEI RED EXHIBITION in Nagano2022”

・性能評価試験における生活排水の流入パターンでのピーク流入は 250L が 59L/min (お風呂の

その太陽黒点の数が 2008 年〜 2009 年にかけて観察されな