5.3 ラグランジェの補間式

5.3 ラグランジェ(Lagrange)の補間式
イタリアのトリノ生まれ,フランスで活動した数学者・天文学者
ジョセフ=ルイ・ラグランジェの提唱。
ラグランジェってどんな人?
最初,微分積分学の物理学、特に力学への
応用に業績を残し,その後,力学を一般化し
て、最小作用の原理に基づく、解析力学(ラ
グランジュ力学)を提唱した。
度量衡の標準化にも尽力した。マリーアント
ワネットの数学教師であったことでも有名で
ある。
1736/1/25 - 1813/4/10
Joseph-Louis Lagrange
(1)考え方
次のような補間式を考える。
f ( x1 )  a1
( x  x2 )( x  x3 )()( x  xn 1 )
( x1  x2 )( x1  x3 )()( x1  xn 1 )
 a2
( x  x1 )( x  x3 )()( x  xn 1 )
( x 2  x1 )( x 2  x3 )()( x 2  xn 1 )

( x  x1 )( x  x3 )()( x  xn 1 )
 an 1
( x n 1  x1 )( x n 1  x2 )()( x n 1  xn )
点列を代入すると,代入の繰返しで係数を求めることができる。
f ( x1 )  a1 , f ( x2 )  a2 ,, f ( xn1 )  an1
(2)等間隔のとき①
等間隔のとき次のようになる。
h  x2  x1  x3  x2    xn1  xn
( x  x2 )( x  x3 )()( x  xn 1 )
f ( x)  f ( x1 )
(h)( 2h)()( nh)
( x  x1 )( x  x3 )()( x  xn 1 )
 f ( x2 )
(h)( 2h)()( (n  1)h)
( x  x1 )( x  x3 )()( x  xn 1 )
  f ( xn 1 )
(nh)(( n  1)h)()( h)
f ( x1 )

( x  x2 )( x  x3 )()( x  xn 1 )
n
n
(1) n!h
f ( x2 )

( x  x1 )( x  x3 )()( x  xn 1 )
n 1
n
(1) n!h
f ( xn 1 )

( x  x1 )( x  x3 )()( x  xn 1 )
n
n!h
(2)等間隔のとき②
表データは,点間の幅を
h とすると,
f ( x1 )
(u  1)(u  2)()(u  n)
n
(1) n!
f ( x2 )

u (u  2)()(u  n)
n 1
(1) (n  1)!

f ( xn 1 )

u (u  2)()(u  (n  1))
n!
 an 1 (nh)(n  1)h(n  2)h (h)
p(u )  f ( x1  uh) 
計算すると(ただしExcelで計算しよう)
0.17365
p (u )  0.0000 
u (u  2)(u  3)(u  4)
 1!3!
0.34202

u (u  1)(u  3)(u  4)
2!2!
0.50000

u (u  1)(u  2)(u  4)
 3!1!
0.64279

u (u  1)(u  2)(u  3)
4!
(3)例
X(度) sin(X)
0
0.0000
10
0.17365
20
0.34202
30
0.50000
40
0.64279
(4)Excelでの定義
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
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
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
(5)Lagrangeの補間では,奇妙な振動が起きる。
ロジスティックの成長曲線をLagrangeの補間で近似すると
この振動をルンゲ(Runge)の現象と呼ぶ。
誤差=真値-近似値
端点が直線的なとき
端点付近で
誤差が大きくなる
非連続的な
ジャンプ点があるとき
ジャンプ点付近で
誤差が大きくなる