Image
数値解析課題
ラグランジェの補間法
Image



Lagrangeの公式において、n=1,2,3のときの補間多項式を具体的に示せ。
また、それらの式のグラフを描いてみてどのように補間されるかイメージしてみよう。

<目的>

Lagrange補間法において公式に具体的数値を代入し、グラフを利用することにより、視覚的に補間された値を確認する。

<式>

(n+1)の点が与えられたとき、ラグランジェの補間多項式をPn(x)とする。
この与えられた点以外の任意の点xを代入して補間値
   y = f ( x ) ≒ Pn( x )
が得られる。

ここで i , j を整数とする。
また、与えられた点をそれぞれ(x0,y0),(x1,y1),(x2,y2),(x3,y3), ...とする。
また、×(乗法)を*で表記する。

・n=1のとき (i , j ともに0〜1)
 P1(x)=y0*(x-x1)÷(x0-x1)+y1*(x-x0)÷(x1-x0)

・n=2のとき  (i , j ともに0〜2)
 P2(x)=y0*{(x-x1)*(x-x2)}÷{(x0-x1)*(x0-x2)}+y1*{(x-x0)*(x-x2)}÷{(x1-x0)*(x1-x2)}
     +y2*{(x-x0)*(x-x1)}÷{(x2-x0)*(x2-x1)}

・n=3のとき  (i , j ともに0〜3)
 P3(x)=y0*{(x-x1)*(x-x2)*(x-x3)}÷{x0-x1)*(x0-x2)*(x0-x3)}
     +y1*{(x-x0)*(x-x2)*(x-x3)}÷{x1-x0)*(x1-x2)*(x1-x3)}
     +y2*{(x-x0)*(x-x1)*(x-x3)}÷{x2-x0)*(x2-x1)*(x2-x3)}
     +y3*{(x-x0)*(x-x1)*(x-x2)}÷{x3-x0)*(x3-x1)*(x3-x2)}


与えられた点 (x0,y0),(x1,y1),(x2,y2),(x3,y3) をそれぞれ (0,0),(2,2),(-2,4),(-4,4)とする。

上記の式にそれぞれ代入すると、

・n=1のとき
 P1(x)=x

・n=2のとき
 P2(x)=x(x-2)/2

・n=3のとき
 P3(x)=x(x+2)(x+4)/24+x(x-2)(x+4)/4-x(x-2)(x+2)/12
    =(5x2+18x-32)x/24

<グラフ>

上記グラフをグラフにしたものがこちら。





青:y = P1(x) = x   ( n = 1 のとき)
赤:y = P2(x) = x ( x - 2) / 2   ( n = 2 のとき)
黄:y = P3(x) = ( 5x2 + 18 x -32 )x /24   ( n = 3 のとき)


<考察>

 Lagrange補間法の公式に実際に具体的数値を入れグラフを描くことにより、最初に定義した点と点の間を補われていることが視覚的に確認できた。
またLagrange補間により、任意のxに対するyが求められることが理解できた。


x=0,10,20,30, ... ,90のsin(x)の値が与えられたときの
Lagrangeの係数を求めるプログラムを完成させ、sin45の値を補間せよ。

<目的>

不完全なプログラムを修正することにより、Lagrange補間法を段階的に理解する。

<修正されたソースコード>

ソースコードはこちら
<実行結果>

<実行結果>

45 deg:  0.78540 rad   Pn:0.70711   True: 0.70711

これは45°をラジアンであらわすと 0.78540π であり、sin(0.78540π)=0.70711となることを示す。

<考察>

グラフのソースコードを確認しながら修正することにより、ラグランジェ補間法の流れを段階的に理解できた。補間を行うことにより任意の角度xにおけるsin(x)の値を知ることができた。


Lagrangeの課題を解くにあたって参考にさせていただいたホームページはこちらに記しました。

<参考したもの>

http://www.mech.tohoku-gakuin.ac.jp/nken/shinji/test_log/approximation.pdf
http://muses.muses.tottori-u.ac.jp/dept/S/kiban/ogata/pasokon.pdf

トップページへ


GeoCities Japan