×= yxz ÷= yxz , yx , ∆∆ yx R x ×== 1025327.00025327.0

全文

(1)

積み残しと桁落ちに関する補足

(例)有効数字5桁

x = 0 . 0025327 = 0 . 25327 × 10

2とする.

380 47 . 10 0 25327 . 0

0012 . 0 10

25327 . 0

1 0012 . 1 10

25327 . 0

1 0025 . 1 1 1

2 2

2

=

= ×

×

= −

×

= −

− +

x

x

有効数字ではない 上式を変形して

( 1

+x+

1 )

=

1

+

1

x+

1

=

1 . 0025 1

+

1

=

2 . 0012 1

=

0 . 49970

x x

と計算すると,すべて有効数字となる.

このように,桁落ちは,式変形で回避できることがある(二次方程式の解の公式など). ちなみに,手許の電卓で計算したところ,

上の式=0.49968381174

下の式=0.49968381277

となった.

積み残しを防ぐには,

①小さい数から足す

SS + x

iを計算するときに,補助変数

R

(初期値0)を用いて,

T R R

T S T

R S S

S T

x R

R

i

← +

← +

と計算する方法もある(単精度でも倍精度並みの計算が可能).

絶対誤差=(近似値−真値)の絶対値 相対誤差=(近似値−真値)の絶対値÷真値

≒(近似値−真値)の絶対値÷近似値

y

x,

の絶対誤差をそれぞれ,

x , ∆ y

とすると,

y x

z = ±

のときは

z = ∆ x + ∆ y y

x

z = ×

または

z = x ÷ y

のときは

y y x z = ∆ x + ∆

となる.

4

(2)

演習問題

4. 二次方程式 の解を求めるプログラムを作成せよ.ただし,入力データ は係数 とする.

2

+ bx + c = 0 ax

c , b a,

5.

f ( x ) = cos x

に 対 し , 適 当 な 値 に お い て , そ の 微 分 値 を , ① 前 進 差 分

h x f h

x + ) − ( ) h f

x

f (

) ,

1

( =

および,②中心差分

h

h x f h x h f

x

f 2

) ( ) ) (

,

2

(

= +

を用い

て計算せよ.刻み幅 を小さくすることで,丸め誤差の減少と,桁落ちによる誤差の増 加が起こることを観測せよ.また,最適な刻み幅hはそれぞれどのくらいの値になるか,

調べよ.

h

6. 数値微分について,上のふたつより精度が高くなる方法を調べなさい.また,それに ついて,5.と同様の方法で,最適な刻み幅を調べよ.

演習問題4〜6の解答を,1月13日(火)までにシステム事務室へ提出しなさい.

5

Updating...

参照

Updating...

関連した話題 :