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

● 前回の講義のまとめ

N/A
N/A
Protected

Academic year: 2021

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

Copied!
6
0
0

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

全文

(1)

● 前回の講義のまとめ

(代数)方程式の解を求めるための方法として,以下を考察した.

1.

区間縮小法(二分法)

2.

ニュートン法(逐次近似)

区間縮小法は「中間値の定理」を応用したものであり,連続な関数

f : R −→ R

に対して,

f ( a ) < 0, f ( b ) > 0, f ( x ) > 0 on [ a, b ]

をみたすとき,

f ( x ) = 0

の区間

( a, b )

での唯一の解

α

を求める方法で ある.

ニュートン法は,以下の定理に基づく方法である.

なめらかな関数

f : R −→ R

に対して,

f ( a ) < 0, f ( b ) > 0, f ( x ) > 0 on [ a, b ], f ( x ) < 0 on ( a, b )

をみたすとき,

x n+1 = x n f ( x n )

f ( x n ) , x 0 = b

によって定められる数列

{x n }

は,

f ( x ) = 0

の区間

( a, b )

での唯一の解

α

に収束する.

より一般に,なめらかな関数

ϕ : R −→ R

が,次の条件を満たすと仮定する.

ある正の定数

L < 1

が存在して,任意の

x , y ( a, b )

に対して

( x ) ϕ ( y ) | ≤ L|x y| (1)

を満たす. このとき,

ϕ

は区間

( a, b )

上にただ一つの固定点

α ( ϕ ( α ) = α )

を持つ. 特に,

x n+1 = ϕ ( x n )

によって定められる数列

{x n }

α

に収束する.

特に,

( α ) | < 1

が成り立つとき,

α

を含む区間

( a, b )

を十分小さく取れば, (1) が成り立つ.

このとき,

|x n+1 α| ≤ |ϕ ( α ) | |x n α| + ( α ) |

2 |x n α| 2 + O ( |x n α| 3 )

が成り立つ.

ニュートン法は,

ϕ ( x ) = x f f(x)

(x)

と置いた逐次近似と考えられ,

ϕ ( x ) = f ( x ) f ( x )

( f ( x )) 2 , ϕ ( x ) = f ( x )

f ( x ) 2 f ( x )( f ( x )) 2 ( f ( x )) 3

が成り立つ.

特に,解が単根

( f ( α ) = 0)

のとき,

ϕ ( α ) = 0 , ϕ ( α ) = f ( α ) f ( α )

となり,

|x n+1 α| ≤ M |x n α| 2 + O ( |x n α| 3 )

(2)

また,解が

m

重根(

f ( α ) = · · · = f (m) ( α ) = 0

のとき)

|x n+1 α| ≤ m 1

m |x n α|

となり, 一次収束する.

ニュートン法では,「解

α

の近似値を,相対誤差

δ

で求める」ために,いつ繰り返しを停止させるかは明 らかではない. すなわち,真の値

α

と「近似値」

x n

を直接比較できないため,評価式

|x n −α| ≤ δ|α|

を利用することができない. そのため,上の評価式(二次収束の式,または,一次収束の式)を利用す ることにより, 次のように評価することができる. (以下では,

ε n = |x n α| , e n = |x n+1 x n |

おく.)

★ 単根の時

|x n+1 x n | ≤ 2 δ

が成り立てば,

|x n α| ≤ δ|x n |

が成り立つ.

【証明】 三角不等式より,

ε n = |x n α| ≤ |x n+1 x n | + |x n+1 α| = e n + ε n+1

が成り立つ. 一方,二次収束の式から,

ε n+1 2 n

が成り立つので,

(1 n ) ε n e n

が成り立つ. ここで,

n

を十分大きくとれば, 1

n > 1 / 2

と取ることができる. した がって

ε n 2 e n , |x n α| ≤ 2 |x n+1 x n |

が成り立つ.

いま,

|x n+1 x n | ≤ (1 / 2) δ|x n |

と取れば,

|x n α| ≤ 2 |x n+1 x n | ≤ δ|x n |

となり,このとき

x n

は相対誤差

δ

α

を近似していることがわかる.

m

重根の時

|x n+1 x n | ≤

が成り立てば,

|x n α| ≤ δ|x n |

が成り立つ.

【証明】 この場合は一次収束の式

ε n+1 m 1 m ε n

が成り立つので,三角不等式より

ε n me n , |x n α| ≤ m|x n+1 x n |

が成り立つ.

いま,

|x n+1 x n | ≤ (1 /m ) δ|x n |

と取れば,

|x n α| ≤ m|x n+1 x n | ≤ δ|x n |

となり,このとき

x n

は相対誤差

δ

α

を近似していることがわかる.

(3)

★ プログラムサンプル

【区間縮小法で

2

の近似値を計算する】

2

の近似値を絶対誤差

10 −10

と相対誤差

10 −10

で求める. 変数

r

は区間の右端点を,

l

は左端点を 表す. 常に

r > l > 0

が成り立つので,相対誤差の評価は

l r < δr

を用いればよい

/*

区間縮小法で

SQRT_2

を計算する

*

*

初期条件で

f(l) < 0, f(r) > 0

を満たす

*/

#include <stdio.h>

#include <math.h>

#define D 1.0E-10 double f(double) ;

int main(int argc, char **argv) {

double l, r, c ;

/*

絶対誤差

D

で求める

*/

l = 0.0 ; r = 2.0 ; while(r - l > D) {

c = (r+l)/2.0 ;

/*

この出力行は

DEBUG

*/

/* printf("%.16f\t%+.16e\n", c, c - M_SQRT2) ; */

if (f(c) < 0) l = c ; else r = c ;

}

printf("SQRT2 = %.16f\n", c) ; /*

相対誤差

D

で求める

*/

l = 0.0 ; r = 2.0 ; while(r - l > D*r) {

c = (r+l)/2.0 ;

/*

この出力行は

DEBUG

*/

/* printf("%.16f\t%+.16e\n", c, (c - M_SQRT2)/M_SQRT2) ; */

if (f(c) < 0) l = c ; else r = c ;

}

printf("SQRT2 = %.16f\n", c) ; return 0 ;

}

double f(double x) {

return x*x - 2.0 ;

}

(4)

● 講義資料

【多角形近似による

π

の計算の

Romberg

加速】

1 3.000000000000

2 3.105828541230 3.141561970632

3 3.132628613281 3.141590732969 3.141592650458 4 3.139350203047 3.141592533505 3.141592653541 5 3.141031950891 3.141592646084 3.141592653589 6 3.141452472285 3.141592653121 3.141592653590 7 3.141557607912 3.141592653560 3.141592653590 8 3.141583892148 3.141592653588 3.141592653590 9 3.141590463228 3.141592653590 3.141592653590 10 3.141592105999 3.141592653590 3.141592653590 11 3.141592516692 3.141592653590 3.141592653590 12 3.141592619365 3.141592653590 3.141592653590 13 3.141592645034 3.141592653590 3.141592653590 14 3.141592651451 3.141592653590 3.141592653590 15 3.141592653055 3.141592653590 3.141592653590 16 3.141592653456 3.141592653590 3.141592653590 17 3.141592653556 3.141592653590 3.141592653590 18 3.141592653581 3.141592653590 3.141592653590 19 3.141592653588 3.141592653590 3.141592653590 20 3.141592653589 3.141592653590 3.141592653590 21 3.141592653590 3.141592653590 3.141592653590

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

0 5 10 15 20 25

0 1 2

(5)

【多角形近似による

π

の計算の

Aitken

加速】

1 3.000000000000 2 3.105828541230 3 3.132628613281

4 3.139350203047 3.141593134327 5 3.141031950891 3.141592683620

6 3.141452472285 3.141592655466 3.141592653591 7 3.141557607912 3.141592653707 3.141592653590 8 3.141583892148 3.141592653597 3.141592653590 9 3.141590463228 3.141592653590 3.141592653590 10 3.141592105999 3.141592653590 3.141592653590 11 3.141592516692 3.141592653590 3.141592653590 12 3.141592619365 3.141592653590 3.141592653590 13 3.141592645034 3.141592653590 3.141592653590

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

0 2 4 6 8 10 12

0 1 2

【テイラー展開による

arctan( x )

の近似】

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

1 10 100 1000 10000 100000

"arctan_06.result_1"

x = 0 . 900 , 0 . 910 , . . ., 1 . 000

(6)

● 実習内容

1.

多項式

( x 1) k ( x + 1), k = 2, 3, 4

の解

x = 1

に対するニュートン法による近似列を, Romberg 速を用いて加速計算しなさい.

2.

多項式

( x 1) k ( x + 1), k = 2, 3, 4

の解

x = 1

に対するニュートン法による近似列を, Aitken加速 を用いて加速計算しなさい.

3.

多角形近似による円周率

π

の近似値を求める計算を

Romberg

加速を用いて加速計算しなさい.

4.

多角形近似による円周率

π

の近似値を求める計算を

Aitken

加速を用いて加速計算しなさい.

5.

マチンの公式

π = 16 arctan(1 / 5) 4 arctan(1 / 239)

を用いて,

π

の値の近似値を絶対誤差

10 −10

で求めなさい. また,

π = 4 arctan(1)

を用いて,

π

の値 の近似値を絶対誤差

10 −5

で求めなさい. また,これらの計算を加速計算しなさい.

【注意】

多角形近似による円周率

π

の近似値を求める計算における, 内接正

n

角形の周長

l n ,

外接正

n

角形 の周長

L n

l n = π π 3

6 n −2 + π 5

120 n −4 + O ( n −6 ) , L n = π + π 3

3 n −2 + π 5

5 n −4 + O ( n −6 )

をみたす.

参照

関連したドキュメント

古典的な尤度比検定 (deviance 差が χ 2 分布にしたがうと仮定) このふたとおりを説明します.まずは parametric bootstrap

今日のレポート課題 以下をレポートにまとめてください。次回講義中に回 収します。

また, 解析解が分かるものに関しては, 時間刻み幅を変化させたとき, 解析解との誤 差がどうなるかを観察しなさい3. 時間刻み幅,

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

前進オイラー法, 改良オイラー法, ホインの 3次公式, ルンゲ・クッタ法.. 上記の常微分方程式の数値解を改良オイラー法,

(★★)整数係数の 4 × 4 行列に対して, それが正則か否かを判定し, もし正則であるときに は, 逆行列を有理数係数で求め,

すなわち, 台形公式と中点則は, 1次以下の多項式に対して正しい積分値を与え,

レポートの課題について、収集した情報をとりまとめて資料を作成