• Tidak ada hasil yang ditemukan

実数の浮動小数点表現とその誤差 その 1

N/A
N/A
Protected

Academic year: 2024

Membagikan "実数の浮動小数点表現とその誤差 その 1"

Copied!
3
0
0

Teks penuh

(1)

GFDワークノート 実数の浮動小数点表現とその誤差 その1 1

実数の浮動小数点表現とその誤差 その 1

実際, 我々は計算機を用いて関数z = f(x, y)を計算し,興味のある値z を獲得する. よっ

て,z の誤差∆cにはf(x, y)の計算の過程で生じた「計算誤差」が含まれている. 今日,計

算機の性能が向上したからといって,この計算誤差が無視できるほどに小さくできるよう になったわけではない. 計算誤差の例を以下に3つほど挙げる. 各自実際に計算し,結果を 考察されたい.

例 1

n = 1,2,· · · ,10に対してn2, n3,1/nを求め, 表を出力する. 実際に手元の計算機で計算

すると,以下の表のようになる. プログラム例はex1 float.f90を参照されたい.

1 n nˆ2 nˆ3 1/n

2 1 1.00000000 1.00000000 1.00000000

3 2 4.00000000 8.00000000 0.50000000

4 3 9.00000000 27.00000000 0.33333333

5 4 16.00000000 64.00000000 0.25000000

6 5 25.00000000 125.00000000 0.20000000

7 6 36.00000000 216.00000000 0.16666667

8 7 49.00000000 343.00000000 0.14285714

9 8 64.00000000 512.00000000 0.12500000

2021˙0506-tatsu.tex 2021/05/06(角川 達洋)

(2)

GFDワークノート 実数の浮動小数点表現とその誤差 その1 2

10 9 81.00000000 729.00000000 0.11111111

11 10 100.00000000 1000.00000000 0.10000000

表を見ると, 特におかしなことは起こっていない. しかし, 伊理テキストによると, 同 様の計算を大型機のFORTRAN で行い, フォーマットにF14.8 を指定して出力すると, 1/10 = 0.1とならずに1/10 = 0.09999996となったという1 ).

例 2

0.01を10,000回足すプログラムを作り, 結果を出力する. 伊理テキストによると, パソコ

ンBASICと大型機FORTRANでは,

10000

n=1

0.01 = {

100.003 (パソコンBASIC)

99.95277 (大型機FORTRAN) (1.1)

という結果になったという. 実際に手元の計算機2 )で計算すると,

10000

n=1

0.01 = {

100.002953 (単精度)

100.00000000001425 (倍精度) (1.2)

と言う結果になる. プログラム例は単精度, 倍精度それぞれex2 float.f90, ex2 double.f90 を参照されたい.

例 3

x = 0.0,0.1,· · · ,0.9,1.0に対してx2 を計算し合計するプログラムを,伊理テキストのよ うに,

x= 0.0 ; s= 0.0 ; whilex≤1.0 do

begins =s+x2 ; x=x+ 0.1 end ; prints

1 ) 伊理テキストp.2に出てくるFORTRANFORMAT, F14.8,出力する値を14桁分の欄に小数点以下 8桁の精度で書くという意味である.この14桁分の欄には符号,小数点を含むことに注意されたい.

2 ) 手元の計算機のプロセッサは「Intel(R) Core(TM)2 Duo CPU T5500 @ 1.66GHz * 2」である. FORTRAN コンパイラはgfortran (GNU Fortran (Debian 4.7.2-5) 4.7.2)を用いた.

2021˙0506-tatsu.tex 2021/05/06(角川 達洋)

(3)

GFDワークノート 実数の浮動小数点表現とその誤差 その1 3

というような構造で作成する. 伊理テキストによると,

10

n=0

(0.1n)2 = {

2.85 (パソコンBASIC)

3.85 (大型機FORTRAN) (1.3)

という値になったという. 手元の計算機では,

10

n=0

(0.1n)2 = {

2.85000038 (単精度)

3.8499999999999996 (倍精度) (1.4)

という結果となった. プログラム例は単精度,倍精度それぞれex3 float.f90, ex3 double.f90 を参照されたい. なお,正答は,

10

n=0

(0.1n)2 = 3.85 (1.5)

であり,これは数列の和の公式,

n

k=0

k2 = 1

6n(n+ 1)(2n+ 1) (1.6)

から容易に確かめられる3 ). 正答と比較すると,パソコンBASIC,あるいは単精度計算にお いて,最後のx= 1.0に対する項の加算をしないらしいことがうかがえる.

参考文献

伊理正夫・藤野和建, 1985:数値計算の常識,共立出版

3 ) (??)を導出する.恒等式,

(k+ 1)3k3= 3k2+ 3k+ 1 を考え,k1,2,· · ·, nを代入し,n個の式の辺々を加えると,

(n+ 1)31 = 3(12+ 22+· · ·+n2) + 3(1 + 2 +· · ·+n) +n となる.よって,

3(12+ 22+· · ·+n2) = (n+ 1)33(1 + 2 +· · ·+n)(n+ 1)

= (n+ 1)33n(n+ 1)

2 (n+ 1)

= n(2n+ 1)(n+ 1)

2 .

ゆえに,

n

k=0

k2= 1

6n(n+ 1)(2n+ 1).

2021˙0506-tatsu.tex 2021/05/06(角川 達洋)

Referensi

Dokumen terkait

金融ADRの現状と問題点 上智大学 甘利 公人 1.はじめに (1)ADRの意義 裁判外紛争解決制度(Alternative Dispute Resolution、以下ADRという)は、 訴訟手続によらずに民事上の紛争解決をしようとする紛争の当事者のために、公 正な第三者が関与して、その解決を図る手続をいう(裁判外紛争解決手続の利用

はじめに 私たちの作品は、4人の監督がそれぞれの監修 のもとで作った4本のショートムービーを集めた 短編集である。 卒業制作に取り掛かる際、まず各々の作りたい 映像作品の構想を提示し合い、それらに共通した ものは何かということを話し合った。その結果、 全作品に一貫したテーマは「現実」と「非現実」 に決定した。この2つを比較したり、融合したり、

「、、、居座るとき」と「その文明にとって命取りになる」の間の箇所の検 証をしてみよう。この箇所は従属節の後であるので、読点容易度は1とな る。そして長さは「、、、方式は」の後の読点から数え始めて、29文字、前 後は15文字と14文字である。そのためこの箇所の読点必要度は0.87となる。 したがって、この箇所の読点予測値は0.9となり、仮説は当該個所に読点が

13 8 43 ○整数の筆算の仕方をもとに小数 ÷1位数の筆算の仕方を考え,筆 算で計算することができる。 ・小数÷1位数の筆算 態度整数のわり算の筆算をもとに して,小数÷1 位数の筆算の仕 方を考えようとしている。《発言・ ノート》 知技小数÷1 位数の筆算の仕方 を理解し,筆算で計算することが できる。《ノート》 9 44

問いを少し易しくして, ”自由部分の階数がどの程度であるか” とか, ”ねじれ部 分群としてどの様な群が現れるか” とか, ”等分点の位数としてどの様な数が現れるか” とか.. 自由部分の階数につ いては, ”幾らでも階数の大きな,有理数体上定義された楕円曲線が存在するだろう” と思われていますが, ”有理数 体上定義された楕円曲線の階数は上に有界であろう”

[問い] F5 が素数でないことを示してください 今では,フェルマーの思いとは逆に, 「フェルマー数Fn は有限個を除いて素数ではないであろう」 と予想されています.. しかしガウスはその奥に, それまでの数の遊びの様な整数論ではない,真

アセンブリ言語assembly language: 機械語と一対一対応する符丁ニーモニックで プログラムを記述したもの アセンブラassembler: アセンブリ言語で記述されたプログラムを 機械語に直すプログラム −→ CPUの設計アーキテクチャによって それぞれ異なる互換性がない —電子計算機概論I 4—... こうして、 loop の2巡目に

であり、有理式では書けない。しかるに、GrothendieckのRiemann存在 定理が保障するのは「有限次被覆はみな代数的射」であるということで ある。 そこで、定理1.3の状況の下で、普遍被覆の代わりに全ての連結被覆を 考える。具体的には、Yλ, yλ→X, xなる一点つき(連結)有限次ガロ ア(不分岐)被覆を全て考える。すると、上記の構成は全射 ρλ