36
数値計算法 7固有値 8関数の近似その1 9関数の近似その2 千葉大学工学部総合工学科機械工学コース 担当者 武居昌宏 教科書 数値計算入門 (Computer Science Library) 河村 哲也 () 出版社: サイエンス社 (2006/04) ISBN-10: 9784781911267

数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

数値計算法第7章 固有値

第8章 関数の近似その1第9章 関数の近似その2

千葉大学工学部総合工学科機械工学コース担当者 武居昌宏

教科書数値計算入門 (Computer Science Library)河村哲也 (著) 出版社: サイエンス社 (2006/04) ISBN-10: 9784781911267

Page 2: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

第7章 固有値 ●固有値の復習2

●2次形式の最大値と最小値

A:二次形式の係数行列⇒対称行列となる

xx Ay

x

bc

cayxcxybyaxyxf T

2/

2/),( 22

2次形式( 全ての項が2 次の項から成る式)は行列で表される

①λmin ≤ RA(x) ≤ λmax (λmin λmaxはA の最小, 最大固有値)②RA(xmin)=λmin RA(xmax)=λmax ( xmin, xmax はλmin, λmaxの固有ベクトル)

),(

,

),(

),(

),(

),(

),(

),(

),(

),()(

2

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xxx

A

AAAAR

T

T

A

●レイリー(Rayleigh) 商の定義 ( )は内積

対角要素

A: n×n行列 Aui=λui ----①固有ベクトル:

固有値:

| A - λE | = 0●一般的な固有値の求め方 Aの固有方程式を解く

E は単位行列

内積のときλでくくるとき注意!!

非対角要素

●レイリー商の性質

スカラー値

…(A)

※式(7.4)参照x:任意の n個の要素の列ベクトル

Page 3: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

7.1べき乗法

n×n行列Aの固有値:

その固有ベクトル:

任意のn次元ベクトルyは固有ベクトルxの線形結合で書けるので、

…(7.1)

さらにAをかけると

y

x1

x2

x3

c1x1

c2x2

c3x3

式(7.1)にAをかける なので

Aをk回かけると

…(B)

:行列Aの絶対値最大の固有値を求める方法

Ax1=λ1x1

Aをかける

Ax2=λ2x2

Ax3=λ3x3

Page 4: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

絶対値最大の固有値λj= λmaxとすると

xj項以外の係数は0に近づく。

●ベクトルの割算は定義できない!! A,yおよびxがもしスカラー値ならば、感覚的に②/①は

k->∞のときこの項のみ残る

k+1乗の項をk乗の項で割るとλjなる

Tjjj xxx 321jx と仮にn=3で考えると、

が絶対値最大の固有値λmaxに近づく同じ要素の比 Tjjj

k->∞で0

Tj

k

jjj

k

jjj

k

jj xcxcxc 3

1

2

1

1

1

‥‥①

‥‥②

Tj

k

jjj

k

jjj

k

jj xcxcxc 321

Page 5: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

任意のn次元ベクトルyの代わりに初期ベクトルx(0)を適当にとって、

k->∞のとき、x(k)とx(k+1)との要素の比が、絶対値最大の固有値λmaxに近づく

となるまで計算 が求める最大固有値⇒ベキ乗法

●収束条件

εは適当に小さい値を決める!!

要素の比をどう表すか?⇒レイリー商を用いたアルゴリズム

●①式と②式の関係から、

…(7.2)

Tj

k

jjj

k

jjj

k

jj xcxcxc 3

1

2

1

1

1

‥‥①

‥‥②

Tj

k

jjj

k

jjj

k

jj xcxcxc 321

)0(1)()1( xxx kkk AA上付き文字 (k)とk、かっこありなしの意味を再確認…(7.2)

Page 6: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

を式(7.4)に代入すると,

ベクトル内積のときλでくくるとき注意!!

●レイリー商を用いたアルゴリズム(k+1)項に対するk項の割り算をベクトルで定義する。式(A)参照

⇒レイリー商

(k+1 )項とk項の内積

(k+1)項と(k+1)項の内積

※ k->∞のとき式(7.4)のレイリー商は絶対値最大の固有値λmaxとなる!!

…(7.4)⇐式(A)参照

),(

),(

),(

),(

),(

),()()(

)()(2

)()(

)()(

)()1(

)1()1(

kk

kk

kk

kk

kk

kk

xx

xx

xx

xx

xx

xx

),(

),()()1(

)1()1(

kk

kk

xx

xx

),(

),((0)(0)1

(0)1(0)1

xx

xxkk

kk

AA

AA

)()()1( kkk A xxx

※Aを無限掛けたレイリー商は絶対値最大の固有値λmaxになる!!

式(7.4)が証明できた!!

Page 7: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●べき乗法のアルゴリズム(レイリー商を用いたアルゴリズム)

各要素が極端に大きく、または小さくなるので、正規化しておく

教科書はy(k)を用いているが、ここではx(k+1) としている

レイリー商は正規化する前で求める。

(3)

1. Aとx(0)を入力する。

2. k = 0,1,2,……に対して次の反復計算を行う。

3. λが収束すれば反復を終了

(1)

(2)

…(7.4)),(

),()()1(

)1()1(

kk

kk

xx

xx

)1(

)1()1(

k

kk

x

xx

x(k+1) = A x(k)

Page 8: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

ちなみにAの固有値は、λ= -1,1,2 最大固有値2に対する固有ベクトルは、

●べき乗法の例題

の最大固有値を、べき乗法(レイリー商を用いたアルゴリズム)により求めよ。

ただし、 とする。

最大固有ベクトルの各要素値は、同じ値か

Page 9: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

::

::

x(k)とx(k+1)との同じ要素の比が絶対値最大の固有値λjに近づくことを確認

𝒙 1 = 𝐴𝒙 0

𝒙 1 =𝒙 1

𝒙 1=

0.7071067820

0.707106782

𝒙 2 = 𝐴𝒙 1

𝒙 2 =𝒙 2

𝒙 2=

0.816496580.408248290.40824829

λ(1) =(𝒙 1 , 𝒙 1 )

(𝒙 1 , 𝒙 0 )=?

レイリー商は正規化する前で求める

λ(2) =(𝒙 2 , 𝒙 2 )

(𝒙 2 , 𝒙 1 )=?

𝒙 16 = 𝐴𝒙 15

𝒙 16 =𝒙 16

𝒙 16=

0.577350270.5773502690.577350269

λ(16) =(𝒙 16 , 𝒙 16 )

(𝒙 16 , 𝒙 15 )=?

𝒙 17 = 𝐴𝒙 16 =1.1547005391.1547005371.154700539

λ(17) =(𝒙 17 , 𝒙 17 )

(𝒙 17 , 𝒙 16 )= 1.999999997 ≈ 2

最大固有値

Page 10: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

7.3 ヤコビ法

Aを実対称行列に限定して

固有ベクトルuiを行列Uで表す

右辺はUΛであってΛUではない!!!理由は次ページ対角行列の左行右列の法則!!

U: 固有ベクトルを列とする行列uは太字であることに注意!!

Λ: 固有値の対角行列対角行列:非対角要素がすべてゼロ

ΛUAU

‥‥(A)

Aui = λi ui …①●固有値の定義

…(7.8)

AUU 1Λ

実対称行列Aのすべての固有値を求める方法

U = [u1, u2, … , un ]

A: n×n の実対称行列

λi : 行列Aの固有値

ui :固有ベクトル (i = 1,2,3, … ,n)

3

2

1

0

0

固有ベクトルuiをUの列で定義すると、

UA=ΛU ⇒ Λ=UAU-1になるので注意!!!

Page 11: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

3)右から対角行列を掛けると各列が対角成分倍

4)左から対角行列を掛けると各行が対角成分倍

3

2

1

3

2

1

333231

232221

131211

c

c

c

b

b

b

aaa

aaa

aaa●行列の演算の基本事項確認

321

333231

232221

131211

321 ccc

aaa

aaa

aaa

bbb

333322311

233222211

133122111

3

2

1

333231

232221

131211

00

00

00

aaa

aaa

aaa

aaa

aaa

aaa

333323313

232222212

131121111

333231

232221

131211

3

2

1

00

00

00

aaa

aaa

aaa

aaa

aaa

aaa

UΛであってΛUではない理由

2) (行ベクトル)×(行列)=(行ベクトル)(1×3) × (3×3)=(1 ×3)

↑同じ値↑

1) (行列)×(列ベクトル)=(列ベクトル)(3×3) × (3×1) = (3 ×1)

↑同じ値↑

対角行列の左行右列の法則!!

Page 12: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

● AUとUΛの要素の確認

①AとBの固有値は一致②直交行列Uのとき A と の固有値は一致③Uが固有ベクトルを列ベクトルとする行列のときAを対角化できる⇒このとき の対角要素が固有値

AUU T

ΛUAU …(7.8)

AUU 1

U:正則行列 (逆行列を持つ正方行列)

●相似変換 行列 AとBは相似

AUUB 11UAUB …(B)

2

10

2

10102

10

2

1

U

321

333231

232221

131211

uuu

aaa

aaa

aaa

AU

321 uuu AAA

3

2

1

321

00

00

00

uuuU

332211 uuu

●直交行列の性質:直交行列の逆行列は転置行列に等しい

正規行列Uが直交行列ならば U‐1 = UT

●対称行列:UT = U

列ベクトル同士が直交(内積=0)

U-1U = UU-1 = E●逆行列:

●直交行列:

UT U = U UT = E

※直交行列の例

Page 13: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●実対称行列Aの対角化と固有値

AUU 1

直交行列U1が固有ベクトルでなくても、Aの絶対値最大の非対角要素を、直交相似変換U1

T A U1 を繰り返すことで、0にできればΛが求まる。

実対称行列Aを対角化したとき、Aの固有値はΛの対角要素となる。

対角要素

行列A

直交相似変換(ハンマー)

行列Λ

絶対値最大の非対角要素を0にする

AUU T …(7.9)

Uが直交行列U‐1 = UT ならば

(A)式と前ページの相似変換の(B)式と比較

Λ: 固有値の対角行列

…(A)

ヤコビ法の基本的なアイデア

Page 14: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

どんな直交相似変換(ハンマー)を使えば、非対角要素が0になるか?⇒回転行列を使うとうまくいく!!!実対称行列Aの絶対値最大の要素 apq (p<q)とする。

U1

p行 q列

q行 q列

p行 p列

q行 p列

●回転行列 ギブンス回転(変換)

ギブンス回転(変換)行列U1 ⇒ θラジアン時計回りに回転したベクトル

p行 q列に絶対値最大要素

q行 p列にも絶対値最大要素

朝眠いので-

Page 15: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

UT1

p行 q列

ここがマイナスsin

q行 q列

p行 p列

q行 p列

ギブンス回転(変換)行列の転置𝑈1𝑇⇒ θラジアン反時計回りに回転

●ギブンス変換

しかしすべての非対角要素が0になる保証はない

行列A1

bqp

繰り返せばいつかA1は0になる

=cos𝜃 −sin𝜃 0sin𝜃 cos𝜃 00 0 1

実対称行列A

UT1 :反時計回り

cos𝜃 sin𝜃 0−sin𝜃 cos𝜃 00 0 1

U1 :時計回り

A1の(p, q)要素をbpq

θをうまく選んでbpqとbqpを0にする

…(7.10) 111 AUUA T1Aではないが と置く

Page 16: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

下記のθを選べばbpq = bqp= 0となる

2倍角の公式

22 sincoscossin pqqqpppq aaab

行列A1のbpqとbqp要素は

秦君コメントbpq(1/2)*(app(1/2)*(結果になりました.…(7.11)

…(7.10) 111 AUUA T

U1 :時計回り回転行列UT

1 :反時計回り

A :実対称行列

22 sincos2cos

qqpp aa ⇒θ = π/4

…(7.12)

のとき 02cos

qqpp aa ppqqpq aaa 22tan のとき

2cos2sin2

1pqqqpppq aaab

cossin22sin

絶対値最大要素

cossin

1

sincos

cossin

1

sincos

'

qqqp

pqpp

qqqp

pqpp

aa

c

aa

bb

c

bb …

……

… … …

… … …

… … …

… … …

Page 17: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

以上をm回繰り返すと、

固有値を対角要素にもつ固有値ベクトルΛは、Amとなる

A1に対して、さらに、絶対値最大の要素を探して、ギブンス変換を行う

●ギブンス変換の繰り返し

…(7.13)

2122 UAUA T 式(7.10) と比較すると A⇒A1 A1⇒A2 U1⇒U2

111 AUUA T …(7.10) 1回目

2回目

mmm

T

m

T

mmm

T

mm UUAUUUAUA 1211 m回目

☜直交行列ならば

m

TT

m

T

mm UUAUUUUA 2111… …

m

T

mm UUUAUUUA 2121 … …

mUUUU 21mA …(7.14) …

Page 18: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

1. 対称行列Aを入力する2. 以下の反復を行う2.1 絶対値最大の成分を求めapqとおく(p<q)2.2

●ヤコビ法のアルゴリズム まとめ

qqpp aa ⇒θ = π/4のとき 02cos

qqpp aa

ppqq

pq

aa

a2tan

2

1 1のとき44

ただし

2.3 θを用いてギブンス行列U(p,q)を作る2.4 UTAUを計算してそれを新たにAとする3. 収束すれば終了

=U1=A=U1T

cossin

1

sincos

cossin

1

sincos

'

qqqp

pqpp

qqqp

pqpp

aa

c

aa

bb

c

bb …

……

… … …

… … …

… … …

… … …

Page 19: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●ヤコビ法の実例

ここは1ミスプリ

app

aqq

a12

ギブンス行列により、ここが0になる!!!

※教科書ミスプリ この行列要素すべて違う

100

070711.070711.0

070711.070711.0

100

0cossin

0sincos

1

U

0000.170711.070711.0

70711.0000.10000.0

70711.00000.0000.3

11

)1( AUUA T

1. 対称行列Aを入力する

2.1 絶対値最大の成分を求めapqとおく(p<q)

の固有値をヤコビ法を用いて解く

2.2 app=aqqなので、式(7.12)cos2θ=0よりθ = π/4 2.3 θを用いてギブンス行列U1を作る

行列Aの絶対値最大要素は、a12 = 2

2.4 UTAUを計算してそれを新たにAとする

Page 20: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

行列Aの絶対値最大要素はa13=0.70711で、式(7.12)より、

※教科書ミスプリ A(2)の行列要素やθなど違う

]rad[307738.0)70711.0(tan2

tan 11

ppqq

pq

aa

a

953021.00302903.0

010

302903.00953021.0

cos0sin

010

sin0cos

2

U

77478.067896.01001645.9

67896.096762.041667.0

100145.941667.019284.3

9

9

6

)5(

6

)6( UAUA T

2.1 絶対値最大の成分を求めapqとおく(p<q)

2.2 qqpp aa のとき

2.3 θを用いて式(7.12)よりギブンス行列U2を作る

Page 21: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

第8章 関数の近似その1 8.1 ラグランジュ補間法(1)

x=2.0 を代入して, y=2.4

さらに(5.0, 2.7)が加わると,

x=2.0 を代入して, y=2.2

n+1 点→n次多項式→ラグランジュ補間法

を通るn次多項式を求める

求めるn次の補間式Pn(x)は,

lj(x) : ラグランジュの補間多項式、または、ラグランジュ基底関数

n

j

jjn xlfxP0

)()( …(8.3)

y

x

(3.2, 1.5)

(1.6, 2.7)

×(2.0, ?)

x0 x1 x2

(5.0, 2.7)9.375.0 xy

30

181

4

11

12

5 2 xxy

njjjjjjj

njj

jxxxxxxxxxx

xxxxxxxxxxxl

1110

1110)(

…(8.1)

分子: xnの関数…

… …

xjがない

Page 22: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

n次多項式の係数は,n+1元の連立1次方程式を解けばよいが・・・・・

しかしこの連立方程式を解くのはかなりめんどう

を通るn次多項式この式は

x0がない求めるn次の補間式Pn(x) を次のようにおく。

第n+1項目: fn×lkn(x)

xnがない

x1がない

第1項目: f0×l0(x)

第2項目: f1×l1(x)

第3項目: f2×l2(x)

x2がない

n

nn

xxxxxxxx

xxxxxxxxfxP

0302010

3210)(

n

n

xxxxxxxx

xxxxxxxxf

1312101

3201

n

n

xxxxxxxx

xxxxxxxxf

2321202

3102

n

n

j

j xaxaxaxaaxf 2

210)( … …

+… 10

10

nnn

nn

xxxx

xxxxf

… …

……

Page 23: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●ラグランジュの補間多項式(ラグランジュ基底関数)の性質

クロネッカーのデルタ

●証明

●ラグランジュ補間式のアルゴリズム

jkkj xl )( …(8.2)

kj

kjjk

0

)(1

Page 24: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●例1 2点(x0,f0) と(x1,f1)を通る1次式

x1がない x2がない

より、

x0がない

n

j

jjn xlfxP0

)()( …(8.3)

01

01

10

101 )(

xx

xxf

xx

xxfxP

●例2 3点(x0,f0) 、(x1,f1)、 (x2,f2)を通る2次式

1202

102

2101

201

xxxx

xxxxf

xxxx

xxxxf

2010

2102 )(

xxxx

xxxxfxP

※2次式になっていることを確認

njjjjjjj

njj

jxxxxxxxxxx

xxxxxxxxxxxl

1110

1110)( …(8.1)

Page 25: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

8.2 ラグランジュ補間法(2)●ラグランジュ補間式の誤差の見積もり式

π(x)G(x)を左辺に移項し π(x) = 0に着目!!

さらに、区間 [x0,xn]内に新たにxk を選び、

●証明

F(x) = f(x) - Pn(x) - π(x)G(x)F(x)が0となるxが のn+1個ある

以上より = 0 となるxが n+2個存在する

このとき𝐹(𝑥𝑘) =0 まずはこれを証明した!!

𝐺(𝑥𝑘) =𝑓 𝑥𝑘 − 𝑃𝑛(𝑥𝑘)

𝜋(𝑥𝑘)

ここはまずはx

「テイラーの定理」

)(!1

)()( )1(10

nn

n fn

xxxxxxxPxf

を満たす、 が存在する。 G(ξ)

…(8.4)…

Page 26: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

区間 (x0, xn) 内に、F’(x)=0となるxが少なくとも n+1 個存在する。

G(x)はx=xk で有限確定

次のように説明

=0となる少なくとも1個のxが存在する

にロルの定理を適用

となる が区間 内にひとつ存在

F’’(x)=0となる少なくともn 個のxが存在する

このときx = ξ

ロルの定理より、F(x)=0となるxが2個存在すれば、F’(x)=0となるxが少なくとも1個存在する。F(x)=0となるxがn+2個存在するとF’(x)=0となるxは少なくともn+1 個存在する

次にこれを証明した!!

y

xx0

×F’(x)=0

x1

y = F(x)

Page 27: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

より、 を求める。F(x) = f(x) - Pn(x) - π(x)G(ξ)

Pn(x)はn次の多項式より

(n+1)階微分すると0

(n+1)! G(ξ)

π(x)を展開して(n+1)階微分すると(n+1)!

を代入すると、前ページの証明より、

(n+1)! G(ξ)

このG(ξ)を元の式に戻すと

(n+1)階微分すると(n+1)!

0になるx = ξが存在

G(ξ)

最後に、式(8.4)を証明した!!

)(

!1

)()()(

)1(

xn

fxPxf

n

n

Page 28: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

●例 f(x)=sinx

xの値 f(x)の値x0 = 0 [rad] f0 = 0.0

x1 = 0.1 [rad] f1 = 0.098334

x2 = 0.2 [rad] f2 = 0.198669

x=0.15[rad]のとき、sin xとラグランジュ補間式との誤差はいくらか?

(1) ラグランジュの補間多項式(ラグランジュ基底関数) lj(x) の計算

x0 x1 x2

x=0.15[rad]

f(x)=sinx

njjjjjjj

njj

jxxxxxxxxxx

xxxxxxxxxxxl

1110

1110)( …(8.1)

… …

… …

Page 29: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

n=2、 x0 < ξ < x2 つまり、0 < ξ < 0.2なので、

(2) x=0.15[rad]のときの、ラグランジュの補間多項式の値

(3) 式(8.4)より誤差の計算

教科書ミスプリn=2なのでsinの3階微分は-coscos(0)=1.0で最大

教科書ミスプリf(x)ではなくてP2(x)にすべき?

f0 f1 f2l0 l1 l2

実際にsinに代入すると f(0.15)=sin(0.15)=0.149438

f(0.15) - P2(0.15) =6.2?×10-5

n

j

jjn xlfxP0

)()( …(8.3)

P2(0.15) = 0×(-0.125)+0.098334×0.75+0.198669×0.375=0.149376

)cos(

6)()( 210

2 xxxxxx

xPxf

x0 = 0 x1 = 0.1 x2 = 0.2 x=0.15を代入

5

2 1025.600.16

)05.0(05.015.0)()(

xPxf

⇒10-5乗の誤差

⇒10-5乗の誤差

)(!1

)()( )1(10

nn

n fn

xxxxxxxPxf

…(8.4)…

Page 30: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

30

もとの関数

6次式

3次式

図8.1 ラグランジュ補完法がよくない例

●例1 ラグランジュ補完法がよくない例

Page 31: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

第9章関数の近似その29.1 3次のスプライン補間法

補完する2点●を3次式s(x)で結ぶ。求める3次式s(x)⇒2階微分すると1次式s”(x)⇒ラグランジュ補間

区間[xk, xk+1] 両端の未知のs” を s”k とs”k+1とする

式(A)を2回積分して積分定数を定める

注意 s(xk) = fk ≠ s”k , s(xk+1) = fk+1 ≠ s”k+1

ここはk=0~n

kk

kk

kk

kk

xx

xxs

xx

xxsxs

1

1

1

1 "")("

ラグランジュ補間した1次式s”(x) 式(8.1)と(8.3)参照

…(A)

区間[xk-1, xk]の3次式s(x)

x

(xk+1, s”k+1)(xk , s”k)

区間[xk, xk+1]の3次式s(x)

(xk , fk)

(xk+1, fk+1)

(xk-1 , fk-1)

xk+1xk

ラグランジュ補間した1次式s"(x)

s"(x)未知

未知

xk-1

(xk , s”k-1) …(9.2)&(9.3)

Page 32: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

xxsxx

fxx

kkkk

k

kk

11

1

"6

1

区間[xk, xk+1]で1回微分x=xkとおく→傾きs’k

つなぎの点 を連続に結ぶので式(9.2)と式(9.3)の傾きは等しい!!

式(9.1)の定数 xk, xk+1, fk, fk+1 式(9.1)の未知数 s”k, s”k+1,

区間[xk-1, xk] でも1回微分してx=xkとおく。式(9.1)でk⇒k-1, k+1⇒kとおく→傾きs’k

その他は定数

未知数

式(A)を2回積分した区間[xk, xk+1]の3次式s(x)

kkkk

k

kk

xxsxx

fxx

11

1

1

"6

1…(9.1)

1

1

3

1

3

1 "6

"6

)(

k

kk

kk

kk

k sxx

xxs

xx

xxxs

変数

…(9.2)

…(9.3)

Page 33: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

kkkkkk sxxsxx "2" 1111

この式が、k= 1,2,… , n-1 の各点で成立未知数 s0”, s1”, , sn” の連立1次方程式

式(9.4)の定数xk-1, xk, xk+1, fk-1, fk, fk+1

未知数のほうが式数よりも2つ多い

ここはk=1~n-1k=0とk=nは除く

1

1

1

16kk

kk

kk

kk

xx

ff

xx

ff

式(9.4)は区間[xk-1, xk]と区間[xk, xk+1]でラグランジュ補間した1次式s“(x)を積分して求めた未知数s”k-1 、s”k 、s”k+1の漸化式

11 " kkk sxx

…(9.4)x

(xk+1, s”k+1)(xk , s”k)

(xk , fk)

(xk+1, fk+1)

(xk-1 , fk-1)

xk+1xks"(x)

xk-1

(xk , s”k-1)

区間[xk, xk+1]の3次式s(x)

区間[xk-1, xk]の3次式s(x)

三項方程式

(x=0とnで変曲点)を仮定⇒自然なスプライン…(9.5)s”0 = s ”n = 0

Page 34: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

3次スプラインアルゴリズムまとめ

1.データ n, x, (xk , fk ) ( k= 0,1, … n)を入力する

2.三項方程式( k= 1,… n-1)

…(9.4)

3.境界条件を課す s”0 = s”n = 0 自然なスプライン

4.三項方程式からs”kを求め3次式s(x)を得る

xxsxx

fxx

kkkk

k

kk

11

1

"6

1

その他は定数

未知数

式(A)を2回積分した区間[xk, xk+1]の3次式s(x)

kkkk

k

kk

xxsxx

fxx

11

1

1

"6

1…(9.1)

1

1

3

1

3

1 "6

"6

)(

k

kk

kk

kk

k sxx

xxs

xx

xxxs

変数

kkkkkk sxxsxx "2" 1111

1

1

1

16kk

kk

kk

kk

xx

ff

xx

ff

11 " kkk sxx

区間[xk-1, xk]の3次式s(x)

x

(xk+1, s”k+1)(xk , s”k)

区間[xk, xk+1]の3次式s(x)

(xk , fk)

(xk+1, fk+1)

(xk-1 , fk-1)

xk+1xk

ラグランジュ補間した1次式s"(x)

s"(x)未知

未知

xk-1

Page 35: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

3Dアニメーションの作り方http://www.cg-ya.net/3dcg/3danimation_howto/3dcg-animation-way/

http://akiras.seesaa.net/category/2548047-1.html

スプライン曲線・曲面ベジエ曲線・曲面

3DCG映画 「アバター」

xbox Kinect

3DCAD

https://ja.wikipedia.org/wiki

ダイヤカット缶キリンチューハイ氷結

モーションキャプチャー

http://www.xbox.com/ja-JP/xbox-one/accessories/kinect

自動車のボディ設計

http://www.rhino3d.co.jp/seminar/s_c_modeling.html

Page 36: 数値計算法 第7章固有値 第8章関数の近似その1 - …takei/NOTE/suutikeisan/7-8-9-7.pdf数値計算法 第7章固有値 第8章関数の近似その1 第9章関数の近似その2

36

「見えない」を「視える」にTakei Laboratory

Laboratory on Multiphase Flow and Visualization