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

● 前回の講義のまとめ •

N/A
N/A
Protected

Academic year: 2021

シェア "● 前回の講義のまとめ •"

Copied!
5
0
0

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

全文

(1)

● 前回の講義のまとめ

一般に,実数

x

を浮動小数点数として表すとき,浮動小数点数として表される数

x

との誤差は

| x − x | ≤ ǫ 2 | x |

となる. (データ誤差)ここで,

ǫ

は浮動小数点数の体系(何進表現で何桁の浮動小数点数か)と「丸 めモード」に依存する定数である. ただし,この不等式は,オーバフローやアンダーフローが生じな い場合に限る.

また,上記の不等式は

| x | ≤ (1 + ǫ/2) | x |

と等価である.

一般に,浮動小数点数

x, y

に対して,四則演算(加算・減算・乗算・除算)を行なった結果の誤差は

| (x · y) − (x ⊙ y) | ≤ ǫ | x · y | , | x ⊙ y | ≤ (1 + ǫ) | x · y | ,

となる. (演算誤差)ここで,

x · y

x, y

が実数だと考え演算を行なった結果(実数)であり,

x ⊙ y

x, y

が浮動小数点数だと考え,浮動小数点演算を行なった結果(浮動小数点数)である. なお, の「誤差評価式」が成り立つためには,「減算」に関しては「1桁の保護桁」が必要となる.

減算における保護桁の存在の仮定の下に,演算誤差が

ǫ

となる理由は,おおよそ以下の通りと考える ことができる.

加減算においては,仮数部の桁移動の際の誤差と,演算結果としてくり上がりが発生した場合の 丸めの誤差のそれぞれで

ǫ/2

の誤差が発生する可能性がある.

乗除算においては,演算結果の丸めの誤差と演算結果としてくり上がりが発生した場合の丸めの 誤差のそれぞれで

ǫ/2

の誤差が発生する可能性がある.

このように浮動小数点演算の誤差は,

| x − x | < ǫ

のような「絶対誤差」による評価ではなく,

| x − x | < ǫ | x |

のような「相対誤差」による評価が必要となる.

上記の最大相対誤差

ǫ

は,浮動小数点数の体系での「刻み幅」から決まる値と考えて良く,その「丸 めモード」が「四捨五入」の時には,刻み幅の半分の値となる. なお, IEEE 784浮動小数点数規約に おける倍精度浮動小数点数の体系で,丸めモードが四捨五入の時には,

ǫ = 2

53となる.

(2)

と考えて良い. そこで,

x

n を計算すると,

a

n

= x

n

= (1 + δ)

n

x

n

= (1 + δ)

n

a

n

∼ (1 + nδ)a

n

となる. したがって,

| a

n

− a

n

| ≤ nδ | a

n

| ∼ nδe

と考えれば,

| e − a

n

| ≤ | e − a

n

| + | a

n

− a

n

| ≤ e 2n + nδe

が成り立つ. ここで,

n

2 以上の項と

δ

2 以上の項を無視していることに注意. したがって,

e

(1 + 1/n)

n で近似する際の誤差は,

e 2 ( 1

n + nǫ)

程度を見積もる必要がある. 実際に, この値を最小とする

n

n = √

ǫ ∼ 2

26

∼ 10

8 程度であり, そのときの値は

e √

ǫ ∼ 10

8程度となる.

この計算は,すべての演算誤差を無視しているが,仮に

1 + 1/n

の「データ誤差」が

0

であったとし ても, (1 + 1/n)2 にはすでに相対誤差

ǫ

の誤差が含まれる可能性がある. よって, 以後の演算にもす べて相対誤差

ǫ

の誤差が含まれ,演算が

n

回程度行われることを考えれば,データ誤差と演算誤差の 総和はおよそ

(の数倍)程度となり,上の評価の本質には影響はない.

• (1 + 1/n)

n の計算における演算誤差は,

n

回(非常に大きな回数)の演算を行うことによってデータ

誤差や演算誤差が蓄積していることが原因である. このように,浮動小数点演算において, 演算回数 が非常に多くなると,丸め誤差(データ誤差と演算誤差)が極めて大きくなる.

• (1 + 1/n)

nを計算する高速な方法は,高速乗算法(およそ

log n

回の乗算)または

pow

関数の利用が

あるが,これらも初期のデータ誤差が同じ程度蓄積するため,これらの方法を用いても,丸め誤差を小 さくすることはできない.

実際に

e

を計算する効率的な(かつ,誤差の少ない)方法は,

e

xのテイラー展開の最初の数項を計算 する方法である. (倍精度浮動小数点数の範囲では, 18項程度計算すればよい)しかし,この場合に も「高次の項からの計算」と「低次の項からの計算」では計算精度に違いが発生する.

(3)

● 講義資料

▼ 講義予定

円周率

π

の計算と浮動小数点数演算の誤差

▼ 計算結果

• ℓ

n

:

半径

1

の円に内接する正

n

角形の周長の半分

• L

n

:

半径

1

の円に外接する正

n

角形の周長の半分

★ 方法1

2n

= 2n s

1 − p

1 − (ℓ

n

/n)

2

2 ,

L

2n

= 2n

2

L

n

− 1 + p

1 + (L

n

/n)

2

★ 方法2

2n

= 2n s

1 − p

1 − (ℓ

n

/n)

2

2 ,

2 L

2n

= 1

n

+ 1 L

n

★ 方法3

2n

=

√ 2ℓ

n

q 1 + p

1 − (ℓ

n

/n)

2

,

2 L

2n

= 1 ℓ

n

+ 1 L

n

★ 方法4

2 L

2n

= 1 ℓ + 1

L ,

(4)

1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1

10 100 1000 10000 100000 1e+06 1e+07 1e+08

Inner (1) Outer (1) Outer (2)

1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1

10 100 1000 10000 100000 1e+06 1e+07 1e+08

Inner (4) Outer (4) Inner (3) Outer (4)

● 実習内容

1.

円周率の値を方法1〜4で計算し,

π

の真の値と計算値との相対誤差をグラフに表しなさい

(5)

● レポート問題

以下の問題は評価対象のレポート問題です. 以下の2問のうちいずれか一方を選択してください. いずれ の問題についても,

A: 10

B: 6

C: 0

と採点します. (中間的な点をつける可能性あり)な お, 2問ともレポートを提出した場合には,高い評価(得点)のレポートを評価対象とします.

【レポート問題

01-A

倍精度浮動小数点演算を用いて,自然対数の底

e

の値を, (1 + 1/n)nで近似計算す るプログラムを書き,

e

の真の値(倍精度浮動小数点数として最も精度の良い近似の値)と

(1 + 1/n)

n との誤差をグラフに表しなさい. ただし,

n

として

10

9 程度まで計算すること. (1 + 1/n)nの計算方 法としては高速乗算法を用いること. また,実際の浮動小数点計算における

| e − (1 + 1/n)

n

|

(計算 誤差を含む)を評価する式を求めなさい. ただし,この評価を求める際には, (1 + 1/n)n の計算は

n

回の乗算として計算してもかまわない. (要するに第1回目および2回目の講義内容と実習課題をま とめたもの)

【レポート問題

01-B

倍精度浮動小数点演算を用いて,半径

1

の円に内接および外接する正多角形の周 長で近似することにより,円周率

π

の近似値を求めるプログラムを書き,

π

の真の値(倍精度浮動小 数点数として最も精度の良い近似の値)と, それぞれの値の誤差をグラフに表しなさい. また,単純 に半角公式を用いたとき,それほどよい近似値を得ることができない理由を説明し, その解決方法を 説明しなさい. (要するに3回目の講義内容と実習課題をまとめたもの)

★ 注意事項

いずれのレポートも以下のものを提出してください.

計算を実行するためのプログラム(電子メールで提出)

計算結果を表示した図(EPS形式または

SVG

形式で提出)

計算結果の考察(PDF 形式またはレポート用紙で提出)

【提出方法】 すべての提出物を添付ファイルとして含んだ電子メールを

[email protected]

に送付する. その際の注意事項は以下の通り

電子メールの

Subject

は「Report-xx-y」とすること. (ただし,

xx-y

の部分は問題番号と する.)

添付ファイルのファイル名は,

zzzzzz-xx-y.c

などと,拡張子を適切につけ,拡張子よりも前の 部分は, 「学籍番号-問題番号」の形式とすること.

電子メール本文にも,学籍番号,学年,氏名を記載すること.

ただし,「計算結果の考察」については,レポート用紙に書いたものを提出してもよい.

【締め切り】 電子メールで提出する場合には,2009年5月27日(水)14:00までに届くように

参照

関連したドキュメント

対応メディア: USB フラッシュメモリーのみ

2 ファイル名

ソースコードファイル名:2016_jouhou_08_学籍番号の下4桁.cxx

前進オイラー法, 改良オイラー法, ホインの

[r]

• ニュートン法では, 「解 α の近似値を, 相対誤差 δ で求める」ために, いつ繰り返しを停止させるかは明 らかではない.. これを

特に, 一般の行列の固有値 を有限回の代数的操作で求めることは不可能である... また,

氏名