数値解析(第四章) 関数を近似する

数値解析 (第四章)
関数を 近似す る
関数の近似はなぜ必要か
モティ ベーシ ョ ン
• 複雑な 関数を 計算機が可能な 演算に 還元し な け ればな ら な い
• でき る だけ 計算量を 減ら し た い
• でき る だけ データ 量を 減ら し た い
• 通常は多項式で近似する が, でき る だけ 滑ら かに 近似し た い
⇓
補間多項式, Taylor 近似, 最小二乗法な ど
数値解析
補間と は (1)
有限個のデータ から 関数全体を 復元し た い
こ の曲線を よ り 計算量と 記憶容量の少な いも ので近似し た い
3
2
1
0.2
0.4
0.6
0.8
1.0
例え ば 4 点を 選んで直線で結ぶと
3
2
1
0.2
0.4
0.6
0.8
1.0
計算量は少な いが不自然
数値解析
補間と は (2)
も う 一点増やし て
3
2
1
0.2
0.4
0.6
0.8
1.0
も っ と 増やせば
3
2
1
0.2
0.4
0.6
0.8
1.0
だいぶよ く な っ た が, つな ぎ 目が不自然
データ を そ んな に 増やせな いと き はど う する か
数値解析
補間と は (3)
いま 行っ た こ と は,
2 点 (a, f (a)), (b, f (b)) を 結ぶ直線 (一次式, 一次多項式) を 求めた だけ
こ れでも 点と 点の距離が近け ればよ い近似が得ら れる
こ のよ う な 近似法を 一次補間 と 呼んでいる 。
二点 (a, f (a)), (b, f (b)) を 結ぶ直線の式は
f (b) − f (a)
(x − a)
y = f (a) +
b−a
x−b
x−a
=
f (a) +
f (b)
a−b
b−a
数値解析
n 次補間 (1)
n 次 (多項式) 補間と は
n + 1 点 (x0 , f0 ), (x1 , f1 ), · · · , (xn , fn ) を 通る n 次多項式 Pn (x)
を 作る こ と を 言う 。 そ のよ う な 多項式 Pn (x) は
Pn (x) =
n
X
li (x) fi ,
i=0
(x − x0 ) (x − x1 ) · · · (x − xi−1 ) (x − xi+1 ) · · · (x − xn )
li (x) =
(xi − x0 ) (xi − x1 ) · · · (xi − xi−1 ) (xi − xi+1 ) · · · (xi − xn )
n
Y
x − xj
=
xi − xj
j=0, j6=i
で与え ら れる (Lagrange の補間)。
問 上の式で与え ら れる Pn (x) が Pn (xi ) = fi (i = 0, 1, . . . , n) を 満た すこ と を
示せ。
数値解析
n 次補間 (2)
問 二点 (0, 0), (1, 1) を 通る 一次補間多項式を 作れ。
問 三点 (0, 0), (1/2, 1/4), (1, 1) を 通る 二次補間多項式を 作れ。
数値解析
n 次補間 (3)
定理 相異な る n + 1 点を 通る n 次多項式は一つし か存在し な い。
証明
そ のよ う な 多項式が2 つあ っ た と する 。 そ れら を P (x) と Q(x) と する 。 こ の2
つはど ち ら も 相異な る n + 1 点 (xi , fi ) (i = 0, 1, . . . , n) を 通る と する 。 すな わち
P (xi ) = Q(xi ) = fi ,
i = 0, 1, . . . , n
と する 。 そ う する と n 次多項式 R(x) = P (x) − Q(x) は
R(xi ) = P (xi ) − Q(xi ) = 0,
i = 0, 1, . . . , n
と な り n + 1 点で 0 と な る (n + 1 個の解を 持つ )。 ⇒ 矛盾
数値解析
Lagrange 補間多項式の計算法
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
P := 0;
for i := 0 to n do
li := 1;
for j := 0 to n do
if j 6= i then
li := li ∗ (x − xj )/(xi − xj );
end if
end for
P := P + fi ∗ li ;
end for
問 上のプロ グラ ム で乗算の回数は何回に な る か。
数値解析
Lagrange 補間の誤差
関数 f (x) の値 (xi , f (xi )) (i = 0, 1, . . . , n) から n 次補間多項式を 作っ た と き ,
そ の誤差 e(x) = Pn (x) − f (x) は
f (n+1) (ξ)
ϕ(x)
e(x) = −
(n + 1)!
と なる 。 こ こ で
ϕ(x) =
n
Y
(x − xi )
i=0
であ り , ξ は x に 依存し て 決ま る 未知の値であ る 。
• x = xi (i = 0, . . . , n) では誤差が0 に な る (当た り ま え )
• x = xi (i = 0, . . . , n) の近く では誤差が小さ く な る
• f (n+1) (x) = 0 な ら e(x) = 0 と な る (f (x) が n 次の多項式の場合)
• maxx |ϕ(x)| が大き く 振動する 関数な ら ば補間の性質も 悪く な る ⇒ チェ ビ
シェ フ 点
数値解析
標本点を ど のよ う に配置す る か
等間隔:
b−a
xi = a +
i,
n
i = 0, 1, . . . , n
チェ ビシェ フ 点:
b+a b−a
−
cos
xi =
2
2
-1.0
2i + 1
π
2(n + 1)
1.0
1.0
0.5
0.5
0.5
-0.5
1.0
-1.0
0.5
-0.5
-0.5
-0.5
-1.0
-1.0
1.0
a = −1, b = 1 の場合の等間隔点と チェ ビシェ フ 点の比較
数値解析
ϕ(x) の比較 (n = 10 の場合)
0.010
0.005
x
-1.0
0.5
-0.5
1.0
-0.005
-0.010
チェ ビシェ フ 点 (太線) と 等間隔点 (細線)
数値解析
チェ ビ シ ェ フ 補間の例
f (x) =
1
1+25x2
の補間多項式の比較
1.5
1.0
0.5
-1.0
-0.5
0.5
1.0
等間隔に 標本点を 配置する と 端の方で振動が激し く な る
数値解析
最小二乗近似
最小二乗近似と は (1)
実験データ に 「 も っ と も ら し く 」 当て はま る 式 (直線 or 曲線) を 探す
12
10
8
6
4
2
2
4
6
8
10
-2
• データ は測定時の誤差を 含んでいる
• 物理的考察 (経験) よ り 現象を 説明する モデルが存在する こ と も あ る
数値解析
最小二乗近似と は (2)
12
10
8
6
4
2
2
4
6
8
10
-2
こ れは不自然!
12
10
8
6
4
2
2
4
6
8
-2
こ れも 不自然! (多項式補間)
数値解析
10
最小二乗近似と は (3)
12
10
8
6
4
2
2
4
6
8
10
-2
こ れはも っ と も ら し い
ど う やっ て こ の「 も っ と も ら し い」 直線を 引く か
数値解析
「 もっともらしく 」 とは
測定データ (xi , yi ) (i = 1, . . . , n) があ る
当て はめる 直線の式 (モデル ) を y = a x + b と する
「 もっともらしく 」 とは
モデルから 得ら れる 値と 測定データ の差 ei (= yi − (a xi + b)) の2 乗和
E(a, b) :=
n
X
e2i =
i=1
を 最小に する よ う に a, b を 決める 。
数値解析
n
X
i=1
(yi − (a xi + b))2
ど う やっ て a, b を 決める か (1)
E(a, b) を 展開する と
E(a, b) =
=
n
X
yi2
i=1
n
X
i=1
− 2 yi (a xi + b) + (a xi + b)
x2i
!
a 2 + n b2 + 2
n
X
i=1
−2
n
X
i=1
yi
!
b+
xi
!
n
X
2
ab − 2
n
X
i=1
yi2
i=1
a に 関し て も , b に 関し て も 二次式で a2 (b2 ) の係数は正であ る 。
⇒ 下に 凸な 関数
∂E(a, b)
∂E(a, b)
=
= 0 と な る 点で極小値を 持つ。
E(a, b) は
∂a
∂b
数値解析
xi yi
!
a
ど う やっ て a, b を 決める か (2)
∂E(a, b)
=2
∂a
∂E(a, b)
=2
∂b
n
X
i=1
n
X
i=1
x2i
xi
!
!
Pn
2
x
i
Pi=1
n
i=1 xi
a+2
n
X
xi
i=1
a + 2nb − 2
!
b−2
n
X
n
X
xi yi
i=1
yi
i=1
!
!
=0
=0
⇓
Pn
Pn
xi yi
a
i=1 xi
i=1
P
=
n
n
b
i=1 yi
⇓
a = (n Sxy − Sx Sy )/(n Sxx − Sx2 )
b = (Sxx Sy − Sx Sxy )/(n Sxx − Sx2 )
Sxx =
n
X
i=1
数値解析
x2i ,
Sxy =
n
X
i=1
xi yi
Sx =
n
X
i=1
xi ,
Sy =
n
X
i=1
yi
別なケ ース
測定データ (xi , yi , zi ) (i = 1, 2, . . . , n) に う ま く 当て はま る よ う な 平面
z = a x + b y + c を 決める 場合は
E(a, b, c) =
n
X
(zi − (a xi + b yi + c))2
i=1
と いう 関数を 作り , そ れを a, b, c で偏微分し 0 と 置いた 方程式を 解く 。
問 a, b, c を 求める 方程式を 導け。
数値解析