logo

エルミート補間 📂数値解析

エルミート補間

定義 1

違うx1,,xnx_{1} , \cdots , x_{n}のデータ(x1,y1,y1),,(xn,yn,yn)(x_{1}, y_{1} , y’_{1}) , \cdots , (x_{n} , y_{n}, y’_{n})に対して{p(xi)=yip(xi)=yi\begin{cases} p (x_{i} ) = y_{i} \\ p '(x_{i} ) = y’_{i} \end{cases}degH2n1\deg H \le 2n-1を満たすインターポレーションである多項関数HHエルミート補間hermite Interpolationと言う。

定理

存在性と一意性

ラグランジュ形式

  • [2]: Hn(x)=i=1nyihi(x)+i=1nyih~i(x)H_{n} (x) = \sum_{i=1}^{n} y_{i} h_{i} (x) + \sum_{i=1}^{n} y’_{i} \tilde{h}_{i} (x)

ニュートンの割差形式

  • [3]: Hn(x)=f(x1)+(xx1)f[x1,x1]+(xx1)2f[x1,x1,x]++(xx1)2(xxn1)2(xxn)f[x1,x1,,xn,xn]\begin{align*}H_{n} (x) =& f(x_{1}) + (x - x_{1}) f [ x_{1} , x_{1} ] + (x - x_{1})^2 f [ x_{1} , x_{1} , x ] + \cdots \\ & + (x - x_{1})^2 \cdots (x - x_{n-1})^2 (x - x_{n}) f [ x_{1} , x_{1} , \cdots, x_{n} , x_{n} ]\end{align*}

誤差分析

  • [4]: 実際の関数との誤差 : 2n2n回微分可能なf:RRf : \mathbb{R} \to \mathbb{R}といくつかのξxH{x1,,xn,x}\xi_{x} \in \mathscr{H} \left\{ x_{1} , \cdots , x_{n} , x \right\}に対してffのエルミート補間HnH_{n}は以下を満たす。 f(x)Hn(x)=[Ψn(x)]2(2n)!f(2n)(ξx) f(x) - H_{n} (x) = {{ [ \Psi_{n} (x) ]^2 } \over { (2n)! }} f^{(2n)} ( \xi_{x} )

  • H{a,b,c,}\mathscr{H} \left\{ a,b,c, \cdots \right\}a,b,c,a,b,c, \cdotsを含む最小の区間を表わす。

説明

エルミート補間は多項式補間で関数値だけでなく微分係数も同時に補間する多項式に関心がある。微分が反映されるので、多項式補間よりも正確だ。

しかし、一回以上の微分にも適用可能だが、その形は非常に複雑だ。

証明

1

戦略: 複数のエルミート補間があると仮定して矛盾を示す。


HHと別のエルミート多項式GGが存在すると仮定する。

R:=HGR := H - Gとするとx=x1,,xnx = x_{1}, \cdots , x_{n}に対して{H(xi)=G(xi)=yiH(xi)=G(xi)=yi\begin{cases} H (x_{i} ) = G (x_{i} ) = y_{i} \\ H’ (x_{i} ) = G' (x_{i} ) = y’_{i} \end{cases}なので、 R(xi)=R(xi)=0 R(x_{i}) = R’(x_{i}) = 0 これはx1,,xnx_{1}, \cdots , x_{n}がすべてR(x)=0R(x) = 022重根という意味なので、ある多項式q(x)q(x)に対して、 R=q(x)(xx1)2(xxn)2 R = q(x) (x - x_{1} )^2 \cdots (x - x_{n} )^2 もしq(x)0q(x) \ne 0ならdegR2n\deg R \ge 2nになるので矛盾で、q(x)=0q(x) = 0ならR(x)=0R(x) = 0でなければならず、H(x)=G(x)H(x) = G(x)しかない。

[2]

戦略: ラグランジュの公式と似て、具体的にhih_{i}h~i\tilde{h}_{i}を見つける。


パート1.

Ψn(x):=(xx1)(xxn) \Psi_{n} (x) := (x-x_{1}) \cdots (x - x_{n}) Ψn\Psi_{n}xxに対して微分してx=xjx = x_{j}を代入すると、 Ψn(xj):=(xx1)(xxj1)(xxj+1)(xxn) \Psi’_{n} (x_{j}) := (x-x_{1}) \cdots (x - x_{j-1})(x - x_{j+1}) \cdots (x - x_{n})

    Ψ(x)n(xxj)Ψn(xj)(xx1)(xxj1)(xxj+1)(xxn)(xjx1)(xjxj1)(xjxj+1)(xjxn)=lj(x) \implies {{ \Psi (x)_{n} } \over { (x - x_{j}) \Psi’_{n}(x_{j}) }} \equiv {{ (x - x_{1} ) \cdots (x - x_{j-1} ) (x - x_{j+1} ) \cdots (x - x_{n} ) } \over { (x_{j} - x_{1} ) \cdots (x_{j} - x_{j-1} ) (x_{j} - x_{j+1} ) \cdots (x_{j} - x_{n} ) }} = l_{j} (x) ここでlil_{i}はインデックスに対するクロネッカーのデルタ関数を示す


パート2.

hi(x):=[12li(xi)(xxi)][li(x)]2 h_{i} (x) := \left[ 1 - 2 l’_{i} (x_{i}) (x -x_{i} ) \right] \left[ l_{i}(x) \right]^2 としてhih_{i}を定義すると、li(xj)=δijl_{i} (x_{j}) = \delta_{ij}なので、 {hi(xj)=δijhi(xj)=0 \begin{cases} h_{i} ( x_{j} ) = \delta_{ij} \\ h’_{i} ( x_{j} ) = 0 \end{cases}


パート3.

h~i(x):=(xxi)[li(x)]2 \tilde{h}_{i} (x) := (x -x_{i} ) \left[ l_{i}(x) \right]^2 としてh~i\tilde{h}_{i}を定義すると、li(xj)=δijl_{i} (x_{j}) = \delta_{ij}なので、 {h~i(xj)=0h~i(xj)=δij \begin{cases} \tilde{h}_{i} ( x_{j} ) = 0 \\ \tilde{h}’_{i} ( x_{j} ) = \delta_{ij} \end{cases}


パート4.

Hn(x):=i=1nyihi(x)+i=1nyih~i(x) H_{n} (x) := \sum_{i=1}^{n} y_{i} h_{i} (x) + \sum_{i=1}^{n} y’_{i} \tilde{h}_{i} (x) としてHnH_{n}を定義すると、パート2とパート3により、 {Hn(xi)=yiHn(xi)=yi \begin{cases} H_{n}(x_{i}) = y_{i} \\ H'_{n}(x_{i}) = y’_{i} \end{cases}

[3]

戦略: ニュートンの割差公式から始めて、そのまま公式が成り立つことを直接示す。


ニュートンの割差公式によりz1,,z2nz_{1}, \cdots , z_{2n}に対して、 f(x)p2n1(x)=(xz1)(xz2n)f[z1,,zn,x] f(x) - p_{2n-1} (x) = (x - z_{1}) \cdots (x - z_{2n}) f [ z_{1} , \cdots , z_{n} , x ] z2i1,z2ixiz_{2i-1} , z_{2i} \to x_{i}とすると、 f(x)p2n1(x)=(xx1)2(xxn)2f[x1,x1,,xn,xn,x] \begin{equation} f(x) - p_{2n-1} (x) = (x - x_{1})^2 \cdots (x - x_{n})^2 f [ x_{1} , x_{1} , \cdots , x_{n} , x_{n} , x ] \end{equation} x=x1,,xnx = x_{1}, \cdots , x_{n}を直接代入してみると、 f(xi)p2n1(xi)=0 f(x_{i} ) - p_{2n-1} (x_{i}) = 0 一方で(1)(1)の両辺を微分すると、 A(x):=(xx1)2(xxn)2ddxf[x1,x1,,xn,xn,x]B(x):=2f[x1,x1,,xn,xn,x]i=1n[(xxi)ij(xxj)2] \begin{align*} A(x) :=& (x - x_{1})^2 \cdots (x - x_{n})^2 {{ d } \over { dx }} f [ x_{1} , x_{1} , \cdots , x_{n} , x_{n} , x ] \\ B(x) :=& 2 f [ x_{1} , x_{1} , \cdots , x_{n} , x_{n} , x ] \sum_{i=1}^{n} \left[ (x -x_{i} ) \prod_{i \ne j} (x - x_{j})^2 \right] \end{align*} に対して、 f(x)p2n1(x)=A(x)+B(x) f ' (x) - p '_{2n-1} (x) = A(x) + B(x) x=x1,,xnx = x_{1}, \cdots , x_{n}を直接代入してみるとA(xi)=B(xi)=0A(x_{i}) = B(x_{i}) = 0なので、 f(xi)p2n1(xi)=0 f ' (x_{i} ) - p '_{2n-1} (x_{i}) = 0 したがってHn(x)=p2n1(x)H_{n} (x) = p_{2n-1} (x)を得る。

[4]

[3]により、 f(x)Hn(x)=f[x1,x1,,xn,xn,x] f(x) - H_{n} (x) = f [ x_{1} , x_{1} , \cdots , x_{n} , x_{n} , x ]

エルミート-ジェノキ公式の帰結:

  • [4]’: f[xi,,xin+1]=1n!f(n)(xi)f [ \underbrace{ x_{i} , \cdots , x_{i} }_{ n+1 } ] = {{1} \over {n!}} f^{(n)} ( x_{i} )

エルミート-ジェノキ公式の帰結により、あるξxH{x1,,xn,x}\xi_{x} \in \mathscr{H} \left\{ x_{1} , \cdots , x_{n} , x \right\}に対して、 f(x)Hn(x)=[Ψn(x)]2(2n)!f(2n)(ξx) f(x) - H_{n} (x) = {{ [ \Psi_{n} (x) ]^2 } \over { (2n)! }} f^{(2n)} ( \xi_{x} )


  1. Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p159. ↩︎