5.3 ラグランジェの補間式

Download Report

Transcript 5.3 ラグランジェの補間式

Slide 1

5.3 ラグランジェ(Lagrange)の補間式
イタリアのトリノ生まれ,フランスで活動した数学者・天文学者
ジョセフ=ルイ・ラグランジェの提唱。

ラグランジェってどんな人?
最初,微分積分学の物理学、特に力学への
応用に業績を残し,その後,力学を一般化し
て、最小作用の原理に基づく、解析力学(ラ
グランジュ力学)を提唱した。
度量衡の標準化にも尽力した。マリーアント
ワネットの数学教師であったことでも有名で
ある。

1736/1/25 - 1813/4/10

Joseph-Louis Lagrange


Slide 2

(1)考え方
次のような補間式を考える。
f ( x1 )  a 1

( x  x 2 )( x  x 3 )(  )( x  x n  1 )
( x 1  x 2 )( x 1  x 3 )(  )( x 1  x n  1 )

 a2

( x  x1 )( x  x 3 )(  )( x  x n  1 )
( x 2  x1 )( x 2  x 3 )(  )( x 2  x n  1 )


 a n 1

( x  x1 )( x  x 3 )(  )( x  x n  1 )
( x n  1  x1 )( x n  1  x 2 )(  )( x n  1  x n )

点列を代入すると,代入の繰返しで係数を求めることができる。
f ( x1 )  a1 , f ( x 2 )  a 2 ,  , f ( x n 1 )  a n 1


Slide 3

(2)等間隔のとき①
等間隔のとき次のようになる。 h  x 2  x1  x 3  x 2    x n 1  x n
f ( x )  f ( x1 )
 f ( x2 )

( x  x 2 )( x  x 3 )(  )( x  x n  1 )
(  h )(  2 h )(  )(  nh )
( x  x1 )( x  x 3 )(  )( x  x n  1 )
( h )(  2 h )(  )(  ( n  1) h )
( x  x1 )( x  x 3 )(  )( x  x n  1 )

  f ( x n 1 )




( nh )(( n  1) h )(  )( h )

f ( x1 )
(  1) n ! h
n

( x  x 2 )( x  x 3 )(  )( x  x n  1 )

n

f ( x2 )
(  1)

n 1

n! h

f ( x n 1 )
n! h

n

n

( x  x1 )( x  x 3 )(  )( x  x n  1 )

( x  x1 )( x  x 3 )(  )( x  x n  1 )


Slide 4

(2)等間隔のとき②
表データは,点間の幅を h とすると,
p ( u )  f ( x1  uh ) 


f ( x1 )
(  1) n !
n

( u  1)( u  2 )(  )( u  n )

f ( x2 )
(  1)

n 1

( n  1)!

u ( u  2 )(  )( u  n )




f ( x n 1 )
n!

u ( u  2 )(  )( u  ( n  1))

 a n  1 ( nh ) ( n  1) h ( n  2 ) h  ( h )


Slide 5

計算すると(ただしExcelで計算しよう)

p ( u )  0 . 0000 

0 . 17365



0 . 34202



0 . 50000



0 . 64279

 1! 3!
2! 2!
 3! 1!
4!

u ( u  2 )( u  3 )( u  4 )
u ( u  1)( u  3 )( u  4 )
u ( u  1)( u  2 )( u  4 )
u ( u  1)( u  2 )( u  3 )

(3)例
X(度) sin(X)
0
0.0000
10
0.17365
20
0.34202
30
0.50000
40
0.64279


Slide 6

(4)Excelでの定義


Slide 7

VBAでのプログラム

①データ設定とボタンのClickイベントハンドラ

Sub データ設定()
XX = 0: DX = 10
For i = 1 To 5
X(i) = XX: FY(i) = Sin(XX * 3.1415926 / 180)
XX = XX + DX
Next
UX = (22 - X(1)) / DX
End Sub
Sub ボタン1_Click()
データ設定
R = Ragrange(FY, UX, 5)
MsgBox " 結果=" & R
End Sub


Slide 8

VBAでのプログラム

②階乗,項設定,補間計算

Function Fact(N) As Double '階乗の計算
Dim D As Double: D = 1
For i = 2 To N
D = D * i
Next
Fact = D
End Function
Function 項設定(i, N, FY) As Double
項設定 = (-1) ^ (N - i) * FY(i) / Fact(i - 1) / Fact(N - i)
End Function
Function 補間計算(i, N, UX) As Double
U = UX: T = 1
For k = 1 To N
If i <> k Then T = T * U
U = U - 1
Next
補間計算 = T
End Function


Slide 9

VBAでのプログラム

③補間のメイン

Function Ragrange(FY, UX, N)
T = 0
For i = 1 To N
A = FY(1)
If i >= 2 Then A = 項設定(i, N, FY) * 補間計算(i, N, UX)
T = T + A
Next
Ragrange = T
End Function


Slide 10

(5)Lagrangeの補間では,奇妙な振動が起きる。
ロジスティックの成長曲線をLagrangeの補間で近似すると

この振動をルンゲ(Runge)の現象と呼ぶ。

誤差=真値-近似値


Slide 11

端点が直線的なとき

端点付近で
誤差が大きくなる


Slide 12

非連続的な
ジャンプ点があるとき

ジャンプ点付近で
誤差が大きくなる