2009年度・前期・数理解析・計算機数学2・第4回 1
● 前回の講義のまとめ
• 円周率 πの近似値を計算する方法として, 半径1の円に内接および外接する正多角形の周長で近似 することを考えた.
• ℓn を半径1 の円に内接する正n角形の周長の半分,Ln を半径1 の円に外接する正n角形の周長の 半分とおくと,簡単な考察により,任意のn≥3に対して,
ℓn< π < Ln, ℓn=nsin(π/n), Ln=ntan(π/n)
が成り立つ. また, 数列ℓn, ℓ2n, ℓ4n, . . .は単調増加であり, 数列Ln, L2n, L4n, . . .は単調減少である ことから,{ℓ2nN0},{L2nN0}は収束することがわかる.
• 三角関数の半角の公式を用いると, ℓ2n= 2n
s 1−p
1−(ℓn/n)2
2 , (1)
L2n= 2n2 Ln
−1 +p
1 + (Ln/n)2
, (2)
2 L2n
= 1 ℓn + 1
Ln (3)
が成り立つ.
• sin(x), tan(x)のテイラー級数
sin(x) =x−x3
3! +O(x5), tan(x) =x+x3
3 +O(x5) を用いることにより,
|ℓn−π|= π3
3!n−2+O(n−4),
|Ln−π|= π3
3 n−2+O(n−4) が成り立つ.
• そこで,ℓ6= 3,L6= 2√
3 を初期値にとり, (1-2)または(1-3)を用いることにより,半径1 の円に 内接・外接する正3×2n 角形の周長を求めることができる.
• 浮動小数点計算において,「近い値を持つ2つの数の差」を計算すると, その結果は, 有効桁の末尾 にある「誤差を含む」数値が上位桁にあらわれ,計算結果に大きな誤差が生じることがある. これを
「桁落ち」または「相殺」と呼ぶ.
• 式 (1)において,nが大きいときp
1−(ℓn/n)2は1に近い数となるため, 1−p
1−(ℓn/n)2の計算 で桁落ちが発生することが理由で,上の計算はうまく進まない. (式(2)においても同様の減少が発 生する)
ex04.tex,v 1.9 2009-05-19 15:27:01+09 naito Exp
2 2009年度・前期・数理解析・計算機数学2・第4回
• これを回避するには, sin(x)の半角の公式を次のように書き換える必要がある.
sin(x/2) =
r1−cos(x)
2 =
s
sin2(x) 1 + cos(x)
= v u u t1−
q
1−sin2(x)
2 =
v u u t
sin2(x) 2(1 +q
1−sin2(x))
• したがって,求めるべき式は
ℓ2n =
√2ℓn q
1 +p
1−(ℓn/n)2
, (4)
2 L2n
= 1 ℓn + 1
Ln (3)
となる. この式にしたがって計算することで,円周率π の近似値を相対誤差10−15 程度で求めるこ とが可能となる.
• なお,より望ましい式としては
2 L2n
= 1 ℓn + 1
Ln, (5)
ℓ2n =p
ℓnL2n (3)
がある.
● 講義資料
▼ 講義予定
• テイラー級数による円周率πと自然対数の底eの近似値の計算(打ち切り誤差)
• √
2の近似値の計算 – 区間縮小法 – ニュートン法
ex04.tex,v 1.9 2009-05-19 15:27:01+09 naito Exp
2009年度・前期・数理解析・計算機数学2・第4回 3
▼ 計算結果
★ arctan(x)の値の計算
1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1
1 10 100 1000 10000
arctan(x)の近似値として
n
X
k=0
(−1)nx2n+1
2n+ 1 を計算した時の誤差(絶対誤差)
x= 1.0, 0.9999, 0.9995, 0.999, 0.995, 0.99, 0.95, 0.9
★ Newton法
1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1
0 1 2 3 4 5 1e-16
1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1
0 10 20 30 40 50 60 70 80 90
f(x) =x2−2 fn(x) = (x−1)n(x+ 1) (n= 1,2,3,4)
z2+ 1 = 0 z3+ 1 = 0 z4+ 1 = 0
ex04.tex,v 1.9 2009-05-19 15:27:01+09 naito Exp
4 2009年度・前期・数理解析・計算機数学2・第4回
● 実習内容
1. マチンの公式
π
4 = arctan(1/5)−4 arctan(1/239) を用いて,円周率の近似値を絶対誤差10−12以内で求めなさい.
2. 区間分割法を用いて√
2 の値を絶対誤差10−12以内で求めなさい.
3. ニュートン法を用いて√
2の近似値を相対誤差10−12以内で求めなさい.
4. ニュートン法をf(x) = (x+ 1)(x−1)k に適用して,解 x= 1への収束の様子を図示しなさい.
5. ニュートン法および区間分割法をもちいて x−cos(x) = 0の区間[0, π/2]に置ける解の近似値を相 対誤差10−12以内で求めなさい.
ex04.tex,v 1.9 2009-05-19 15:27:01+09 naito Exp