1
大学数学基礎解説
文献あり

高校数学から始める数値計算(1):補間多項式

1865
0

目次

本稿は「1. はじめに」と「2. 補間多項式」に当たります.なお,本稿はこの PDF版 を元に,Mathlogの仕様に合わせて一部の文言・体裁を変更したものです.内容は変わりません.

  1. はじめに
  2. 補間多項式
    1. ラグランジュ補間
    2. ニュートン補間
    3. 補間多項式による近似の誤差
  3. 数値微分
  4. 数値積分
    1. ニュートン・コーツの公式
    2. ガウス・ルジャンドル公式
  5. 補遺
    1. ルンゲ現象
    2. 補間多項式とテイラー多項式の関係

はじめに

計算機上で関数を扱うには,関数をよく知られた扱いやすい関数で近似できると何かと便利である.中でも扱いやすい関数は多項式関数であろう.+×の2つの演算さえ実行できれば計算でき,しかも,曲線として表現できる幅もそれなりに広い.本稿では,この多項式関数によって,種種の計算を近似的に行う方法を紹介する.

ラグランジュ補間

次の定理は,本稿を通して重要な役割を担うものである.

補間多項式の一意存在性

実数の組P1=(p1,q1),,Pn=(pn,qn)は,ijなら必ずpipjを満たすとする.このとき,任意のi=1,,nについて変数xpiを代入した値がqiであり,かつ次数がn1以下である多項式f(x)がただ1つ存在する.

まず存在性を示す.i=1,,nに対し,多項式gi(x)
gi(x)=(xp1)(xpi1)(xpi+1)(xpn)
で定義する.このとき
gi(pj)={(pjp1)(pjpi1)(pjpi+1)(pjpn)(j=i)0(ji)(j=1,,n)
である.仮定によりijならpipjなので,gi(pi)0である.したがって
f(x)=q1h1(x)++qnhn(x),hi(x)=1gi(pi)gi(x)
により多項式f(x),h1(x),,hn(x)を定義すれば
f(pi)=q1h1(pi)++qnhn(pi)=q10++qi10+qi(1gi(pi)gi(pi))+qi+10++qn0=qi
となる.h1(x),,hn(x)の次数はn1次なので,これらの定数倍の和であるf(x)の次数は最大でもn1である.

次に一意性を示す.多項式f1(x),f2(x)はともに次数がn1以下であり,かつすべてのi=1,,nに対してqi=f1(pi)=f2(pi)を満たすとする.g(x)=f1(x)f2(x)で多項式g(x)を定義すると,g(x)の次数もn1以下である.また,x=p1,,pnのときg(x)=0であり,p1,,pnはどの2つも相異なるので,因数定理によりg(x)xp1,,xpnを因数に持つ.すなわち,g(x)は多項式A(x)によって
g(x)=A(x)(xp1)(xpn)
と書ける.g(x)の次数はn1以下なので,この等式が成り立つにはA(x)=0でなければならない.よってg(x)=0であるので,f1(x)=f2(x)が示された.

ラグランジュの補間多項式

定理1の多項式f(x)をラグランジュの補間多項式(あるいは単に補間多項式)という.
f(x)は次のように表せる.
f(x)=i=1nqikixpkpipk

は総乗記号であり,+×に置き換えたものである.この場合はk=1,,i1,i+1,,nについて積をとる.

補間多項式の例1

(p1,q1)=(1,4),(p2,q2)=(3,0),(p3,q3)=(4,1)のとき,補間多項式は
f(x)=4(x3)(x4)(13)(14)+0(x1)(x4)(31)(34)+1(x1)(x3)(41)(43)=x26x+9
である.

補間多項式の例2

(p1,q1)=(1,6),(p2,q2)=(5,2),(p3,q3)=(4,3)のとき,補間多項式は
f(x)=6(x5)(x4)(15)(14)+2(x1)(x4)(51)(54)+3(x1)(x5)(41)(45)=x+7
である.このように,n個の点に関する補間多項式の次数は必ずしもn1にならない.

点と補間多項式の関係 点と補間多項式の関係

ニュートン補間

この節では,補間多項式が通るべき点を追加したとき,補間多項式はどう変化するか考える.

定理1の状況で,k=1,,nに対して,点P1,,Pkに関する補間多項式をfk(x)とする.
gk(x)=fk(x)fk1(x)とおくと,i=1,,k1についてgk(pi)=0である.gk(x)の次数は最大でもk1なので,因数定理により
gk(x)=Ak1(xp1)(xpk1)
を満たす実数Ak1が存在する.

したがって
fn(x)fn1(x)=An1(xp1)(xpn2)(xpn1)fn1(x)fn2(x)=An2(xp1)(xpn2)f2(x)f1(x)=A1(xp1)f1(x)=q1
である.すべて足すことで
f(x)=fn(x)=q1+k=1n1Ak(xp1)(xpk)
を得る.以上により,定義1の補間多項式f(x)は,n1個の実数A1,,An1により上のように表せることが分かる.また,この式に現れるk=l1までで打ち切った多項式はfl(x)であり,点P1,,Plに関する補間多項式になっている.このことをまとめると次のようになる.

定理1の状況で,任意のl=1,,nについて多項式
q1+k=1l1Ak(xp1)(xpk)
が点P1,,Plに関する補間多項式となるような実数A1,,An1が存在する.

あとはA1,,An1P1,,Pnを用いて具体的に書ければよい.差商はこの簡便な表記を与える.

差商

定理1の状況で,差商[q1,,qn]を次のように定義する.

[q1]=q1[q1,,qk]=[q1,,qk1][q2,,qk]p1pk(k2)

関数g(x)q1=f(p1),,qn=f(pn)を満たす場合,[q1,,qn]g[p1,,pn]とも表記する.

差商の例

(p1,q1)=(1,6),(p2,q2)=(5,2),(p3,q3)=(4,3)のとき
[q1,q2]=6215=1,[q2,q3]=2354=1,[q1,q2,q3]=1(1)14=0
である.

ニュートン補間

定理1の状況で,f(x)は次のように表せる.
f(x)=q1+k=1n1[q1,,qk+1](xp1)(xpk)

帰納法により示す.n=1のときはf(x)=q1なので明らかに成り立つ.次に,n1個以下の点に関する補間多項式について成立を仮定する.点P1,,Pnに関する補間多項式をf(x)とする.点P1,,Pn1に関する補間多項式をg(x)P2,,Pnに関する補間多項式をh(x)とおくと,多項式
(xp1)h(x)(xpn)g(x)pnp1
は次数がn1以下であり,かつ点P1,,Pnを通る.定理1により補間多項式は一意なので,これは補間多項式f(x)である.右辺のn1次の項の係数(0であることもある)は,帰納法の仮定により
[q2,,qn][q1,,qn1]pnp1=[q1,,qn]
である.定理2により,f(x)は実数A1,,An1によって
f(x)=q1+k=1n1Ak(xp1)(xpk)
と書けるが,このn1次の項の係数はAn1であるので
f(x)=(q1+k=1n2Ak(xp1)(xpk))+[q1,,qn](xp1)(xpn1)
である.上の第1項はg(x)に等しいので,帰納法の仮定により
f(x)=(q1+k=1n2[q1,,qk+1](xp1)(xpk))+[q1,,qn](xp1)(xpn1)=q1+k=1n1[q1,,qk+1](xp1)(xpk)
である.よって,n個の点に関する補間多項式についても命題は成り立つ.

このように,多項式(xp1)(xpk)(k=1,,n1)の定数倍の和によって,点P1,,Pnに関する補間多項式を得る方法をニュートン補間という.

ニュートン補間の例

例3により,点(1,6),(5,2),(4,3)に関する補間多項式は
6+(1)(x1)+0(x1)(x5)=x+7
である.定理1からも分かるように,これは例2と一致している.

補間多項式による近似の誤差

補間多項式はしばしば,関数を近似するために用いられる.この節では,補間多項式による近似がどの程度妥当であるか分析する方法について考察する.

n2以上の整数とする.f(x)を関数とし,曲線y=f(x)上の点P1=(x1,f(x1)),,Pn=(xn,f(xn))x1<<xnを満たすとする.点P1,,Pnに関する補間多項式をp(x)とおくと,f(x)が十分に滑らかであれば,xx1,,xnに近いときf(x)の値とp(x)の値はごく近いことが期待できる.次の定理はこのことを保証するものである.

補間多項式による近似の誤差

上の状況で,関数f(x)n階微分可能であるとする.このとき,任意のt(x1,xn)に対し
f(t)p(t)=f(n)(ξ)n!(tx1)(txn)
を満たすξ(x1,xn)が存在する.これにより,|f(n)(x)|が区間[x1,xn]で最大値を持てば
|f(t)p(t)|maxx1ξxn|f(n)(ξ)|n!|(tx1)(txn)|maxx1ξxn|f(n)(ξ)|n!(xnx1)n
である.

この定理は次の補題から導かれる.

閉区間I=[a,b]で定義された関数g(x)Iにおけるn+1個の点で0であり,かつIn階微分可能であるとする.このときg(n)(ξ)=0を満たすξ(a,b)が存在する.

どの2つも相異なるn+1個の実数x1,,xn+1Iについてg(x1)==g(xn+1)=0であるとする.j=1,,nに対し,I1,j=[xj,xj+1],I˚1,j=(xj,xj+1)とおく.関数g(x)I1,jで連続かつI˚1,jで微分可能なので,平均値の定理により
g(1)(ξ1j)=g(xj)g(xj+1)xjxj+1=00xjxj+1=0
を満たすξ1,jI˚1,jが存在する.これにより,n個の実数ξ1,1<<ξ1,ng(1)(x)の値が0であるように取れる.このn項数列をξ1={ξ1,n}とする.

同様に,j=1,,n1に対して,I2,j=[ξ1,j,ξ1,j+1],I˚2,j=(ξ1,j,ξ1,j+1)とおく.再び平均値の定理により
g(2)(ξ2,j)=g(1)(ξ1,j)g(1)(ξ1,j+1)ξ1,jξ1,j+1=00ξ1,jξ1,j+1=0
を満たすξ2,jI˚2,jが存在する.ξ2,1,,ξ2,n1により,さきほどと同様にn1項数列ξ2={ξ2,n}を定義する.

以下,これを繰り返すことによって数列ξ3,,ξnを定義する.ξjn+1j項数列であり,その項に現れる任意の数ag(j)(a)=0を満たす.よって,特にj=nのときξnは項をただ1つもち,その項ξg(n)(ξ)=0を満たす.

以上の補題により,定理4は次のように証明される.

t=x2,,xn1のときは(tx1)(txn)=0であるから,ξは区間(x1,xn)上の任意の値にしてよい(たとえばξ=(x1+xn)/2とすればよい).そこで,tx2,,xn1のいずれとも等しくない場合について示す.
g(x)=f(x)p(x)a(xx1)(xxn)
とおく.ただしag(t)=0であるように取る.すなわち
a=f(t)p(t)(tx1)(txn)
とする.

x=x1,,xn,tのときg(x)=0であり,かつ関数g(x)は仮定によりn階微分可能である.よって,補題5によりg(n)(ξ)=0を満たすξ(x1,xn)が存在する.ここで
g(n)(ξ)=f(n)(ξ)p(n)(ξ)an!=0a=f(n)(ξ)p(n)(ξ)n!
である.p(x)の次数は最大でもn1なのでp(n)(ξ)=0であり
a=f(n)(ξ)n!f(t)p(t)f(n)(ξ)n!(tx1)(txn)=g(t)=0
となる.したがって
f(t)p(t)=f(n)(ξ)n!(tx1)(txn)
である.後半は明らか.

誤差評価の例

sin10.5の近似値を求めよう.数表により,近似値
sin10=0.1736,sin11=0.1908,sin12=0.2079
が分かっているとする.このとき,点(10,0.1736),(11,0.1908),(12,0.2079)に関する補間多項式はp(x)=0.00005x2+0.01825x0.0039である.よって
sin10.5p(10.5)=0.182213
となる.

sin(πx/180)とp(x)の比較 sin(πx/180)とp(x)の比較

この近似の妥当性を考える.定理4,および
|d3dx3sin(π180x)|=|(π180)3cos(π180x)|(π180)3
により
|sin10.5p(10.5)|(π180)313!|(1210)|37.08×106
である.これは利用した近似値の有効数字である4桁よりも十分に小さいので,sin10.5=0.1822は有効数字4桁で正しいと考えられる.実際,sin10.5=0.182236なので,確かに有効数字4桁で正しい値が得られている.また,有効数字4桁の数表に基づく限り,補間多項式の次数をこれ以上増やす必要は無いことも分かる.

参考文献

[1]
堀之内 總一 and 酒井 幸吉 and 榎園 茂, Cによる数値計算法入門, 森北出版, 2015
[2]
金谷 健一, 数値で学ぶ計算と解析, 共立出版, 2010
[3]
菊地 文雄, 数値解析の原理: 現象の解明をめざして, 岩波数学叢書, 岩波書店, 2016
[4]
高橋 大輔, 数値計算, 理工系の基礎数学;8, 岩波書店, 2018
投稿日:202156
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

数学、特に応用数学が好きです。Mathlogでは主に、数学とプログラミングを絡めたようなことを書けたらいいなと思っています。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 目次
  2. はじめに
  3. ラグランジュ補間
  4. ニュートン補間
  5. 補間多項式による近似の誤差
  6. 参考文献