差商のソースを表示
←
差商
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記|date=2021年3月}} [[数学]]における'''差商'''(さしょう、{{lang-en-short|''divided differences''}}; 分割差分、'''差分商'''<ref>{{kotobank|差分商|世界大百科事典}}</ref>)は、[[差分商]]をとる操作を[[再帰的]]に繰り返すことで与えられる。歴史的には対数表や三角函数表の計算に用いられ、[[チャールズ・バベッジ]]の[[階差機関]](初期の[[機械式計算機]])はこれを実装するものとして設計された<ref name="Isaacson2014">{{cite book|last1=Isaacson|first1=Walter|title=The Innovators|date=2014|publisher=Simon & Schuster|isbn=978-1-4767-0869-0|page=20|ref=Isaacson2014}}</ref>。 差商は[[ニュートン補間]]における[[補間多項式]]の計算に用いることができる。 == 定義 == {{math|''n'' + 1}} 個の節点 <math display="inline">(x_0, y_0),\ldots,(x_n, y_n)</math> に対する、'''前進差商'''は <math display="block">\begin{align}{} [y_\nu] &:= y_\nu\quad (\nu \in \{ 0,\ldots,n\}),\\[5pt] [y_\nu,\ldots,y_{\nu+j}] & := \frac{[y_{\nu+1},\ldots , y_{\nu+j}] - [y_{\nu},\ldots , y_{\nu+j-1}]}{x_{\nu+j}-x_\nu}\quad (\nu\in\{0,\ldots,n-j\},\ j\in\{1,\ldots,n\}) \end{align}</math> で定義される。同様に'''後退差商'''は <math display="block">\begin{align}{} [y_\nu] &:= y_{\nu}\quad(\nu \in \{ 0,\ldots,n\}),\\[5pt] [y_\nu,\ldots,y_{\nu-j}] &:= \frac{[y_\nu,\ldots , y_{\nu-j+1}] - [y_{\nu-1},\ldots , y_{\nu-j}]}{x_\nu - x_{\nu-j}} \quad (\nu\in\{j,\ldots,n\},\ j\in\{1,\ldots,n\}) \end{align}</math> と定義される。 以下本項では主に前進差商のみを扱い、それを単に差商と呼ぶ。 === 等間隔の場合 === {{main|差分商}} 節点(の {{mvar|x}}-座標)が等間隔に並んでいるときには、[[前進差分]](あるいは後退・中央の各有限差分)の定める[[差分商]]によって差商を記述することができる。この場合は、より一般の差商よりも計算が楽になる。注目すべきは、差商の分母が既知であるならば、差分商から差商を容易に回復することができることである。 すなわち、上と同じ節点のデータが与えられ、適当な数 {{math|''h'' > 0}} に対して {{math|1=''x{{sub|ν}}'' = ''x''{{sub|0}} + ''νh''}} {{math|1=(''ν'' = 0, …, ''n'')}} となっているとき、前進差分は <math display="block">\begin{align} \Delta^{(0)} y_i &:= y_i,\\ \Delta^{(k)} y_i &:= \Delta^{(k-1)}y_{i+1} - \Delta^{(k-1)}y_i\quad (k \ge 1) \end{align}</math> で定義される。前進差分と差商との関係は <math display="block">f[x_0, x_1, \ldots , x_k] = \frac{1}{k!h^k}\Delta^{(k)}f(x_0)</math> と書ける<ref>{{cite book|last1=Burden|first1=Richard L.|last2=Faires|first2=J. Douglas|title=Numerical Analysis|date=2011|page=129|edition=9th}}</ref>。 === ニュートンの三角形 === 隣り合う二項から次の階数の項が次々に作られる様子は、[[パスカルの三角形]]の類似で、差商を三角形状に並べるとわかりよい。 : <math display="inline-block" style="right-margin:2em;"> \begin{matrix} x_0 & y_0 = [y_0] & & & \\ & & [y_0,y_1] & & \\ x_1 & y_1 = [y_1] & & [y_0,y_1,y_2] & \\ & & [y_1,y_2] & & [y_0,y_1,y_2,y_3]\\ x_2 & y_2 = [y_2] & & [y_1,y_2,y_3] & \\ & & [y_2,y_3] & & \\ x_3 & y_3 = [y_3] & & & \end{matrix} </math> あるいは <math display="inline-block" style="left-margin:2em;"> \begin{matrix} y_0 & & & \\ & \Delta y_0 & & \\ y_1 & & \Delta^2 y_0 & \\ & \Delta y_1 & & \Delta^3 y_0\\ y_2 & & \Delta^2 y_1 & \\ & \Delta y_2 & & \\ y_3 & & & \end{matrix} </math> == 記法 == 節点が函数 {{mvar|f}} を用いて <math display="inline">(x_0, f(x_0)),\ldots,(x_n, f(x_n))</math> と与えられているときには、<math display="block">\begin{align} f[x_\nu] &:= f(x_{\nu}), \qquad \nu \in \{ 0,\ldots,n \},\\[5pt] f[x_\nu,\ldots,x_{\nu+j}] &:= \frac{f[x_{\nu+1},\ldots , x_{\nu+j}] - f[x_\nu,\ldots , x_{\nu+j-1}]}{x_{\nu+j}-x_\nu} \quad (\nu\in\{0,\ldots,n-j\},\ j\in\{1,\ldots,n\}) \end{align}</math> と書くこともある。同様に <math display="block">[x_0,\ldots,x_n]f,\quad [x_0,\ldots,x_n;f],\quad D[x_0,\ldots,x_n]f</math> などとも書く。 具体的に書き下せば: <math display="block"> \begin{align} f[x_0] &= f(x_0) \\ f[x_0,x_1] &= \frac{f(x_0)}{(x_0-x_1)} + \frac{f(x_1)}{(x_1-x_0)} \\ f[x_0,x_1,x_2] &= \frac{f(x_0)}{(x_0-x_1)\cdot(x_0-x_2)} + \frac{f(x_1)}{(x_1-x_0)\cdot(x_1-x_2)} + \frac{f(x_2)}{(x_2-x_0)\cdot(x_2-x_1)} \\ f[x_0,x_1,x_2,x_3] &= \frac{f(x_0)}{(x_0-x_1)\cdot(x_0-x_2)\cdot(x_0-x_3)} + \frac{f(x_1)}{(x_1-x_0)\cdot(x_1-x_2)\cdot(x_1-x_3)} + \frac{f(x_2)}{(x_2-x_0)\cdot(x_2-x_1)\cdot(x_2-x_3)} + \frac{f(x_3)}{(x_3-x_0)\cdot(x_3-x_1)\cdot(x_3-x_2)}\end{align} </math> のようになる。一般に <math display="block">f[x_0,\dots,x_n] = \sum_{j=0}^{n} \frac{f(x_j)}{\prod_{k=0,\ldots n; k\neq j} (x_j-x_k)} </math> となり、これを[[多項式函数]] <math display="inline">q(\xi) = (\xi-x_0) \cdots (\xi-x_n)</math> を用いて<math display="block">f[x_0,\dots,x_n] = \sum_{j=0}^{n} \frac{f(x_j)}{q'(x_j)}</math> と書くことができる。また極限を用いて <math display="block"> f[x_0,\dots,x_n] = \sum_{j=0}^{n} \lim_{x \to x_j} \left[ \frac{f(x_j)(x - x_j)}{\prod_{k=0}^{n} (x - x_k)} \right] </math> とも書ける。 == 性質 == * [[線型性]]: <math display="block">\begin{align} &(f+g)[x_0,\dots,x_n] = f[x_0,\dots,x_n] + g[x_0,\dots,x_n]\\ &(\lambda\cdot f)[x_0,\dots,x_n] = \lambda\cdot f[x_0,\dots,x_n] \end{align}</math> * [[一般ライプニッツ則|ライプニッツの法則]]: <math display="block"> (f\cdot g)[x_0,\dots,x_n] = f[x_0]\cdot g[x_0,\dots,x_n] + f[x_0,x_1]\cdot g[x_1,\dots,x_n] + \dots + f[x_0,\dots,x_n]\cdot g[x_n]</math> * 対称性: <math display="block">f[x_0, \dots, x_n] = f[x_{\sigma(0)}, \dots, x_{\sigma(n)}]\quad(\sigma\in S_n)</math> * [[差商に対する平均値の定理]]より: <math display="block">f[x_0,\dots,x_n] = \frac{f^{(n)}(\xi)}{n!}\quad(\exists\xi\in(\min x_k, \max x_k))</math> == 別定義 == === ペアノ形 === 次数 {{math|''n'' − 1}} の[[Bスプライン]] {{mvar|''B''{{sub|''n''−1}}}} を用いて、差商を <math display="block">f[x_0,\ldots,x_n] = \frac{1}{n!} \int_{x_0}^{x_n} f^{(n)}(t)B_{n-1}(t) \, dt</math>と書くことができる。{{math|''f''{{sup|(''n'')}}}} は {{mvar|f}} の {{mvar|n}}-階導函数である。 これを差商の'''ペアノ形''' (''Peano form'') と言い、{{mvar|''B''{{sub|''n''−1}}}} をこの差商の{{ill2|ペアノ核|en|Peano kernel}}と呼ぶ。ともに名称は[[ジゼッペ・ペアノ]]に因む。 === テイラー形 === 考えている節点が集積しているならば、ほとんどゼロに近い値での割り算が生じ、[[相対誤差]]が大きくなるから、数値計算はおぼつかない。しかしその場合も、[[差分商]]を[[微分商]]で(あるいはその逆に)近似することはできる:<math display="block">\frac{f(y)-f(x)}{y-x} \approx f'(x) \quad (x \approx y).</math> この近似は[[テイラーの定理]] <math display="block"> f(y) = f(x) + f'(x)\cdot(y-x) + f''(x)\cdot\frac{(y-x)^2}{2!} + f'''(x)\cdot\frac{(y-x)^3}{3!} + \dotsb </math> が適用できる函数に関しては等式 <math display="block"> \frac{f(y) - f(x)}{y-x} = f'(x) + f''(x)\cdot\frac{y-x}{2!} + f'''(x)\cdot\frac{(y-x)^2}{3!} + \dotsb </math>に変えることができる。また、中央差分を利用すれば {{mvar|y − x}} の奇数冪の項を消すことができる: <math display="block">\frac{f(y) - f(x)}{y-x} = \frac{f(m+h) - f(m-h)}{2\cdot h} = f'(m) + f'''(m)\cdot\frac{h^2}{3!} + \dotsb .</math> 原理的には、テイラー級数および任意の{{ill2|函数項級数|en|function series}}に差商近似が適用できる。テイラー級数は[[冪函数]]に関する無限和で、函数にその差商を対応させる写像 {{math|''f'' {{mapsto}} ''f''[''x''{{sub|0}}, …, ''x{{sub|n}}'']}} は[[線型汎函数]]であるから、基底函数にこの汎函数を適用すればよい。 通常の冪函数 {{math|''p{{sub|n}}''(''x'') {{coloneqq}} ''x{{exp|n}}''}} によって、通常のテイラー級数を <math display="block">f = f(0)\cdot p_0 + f'(0)\cdot p_1 + \frac{f''(0)}{2!}\cdot p_2 + \frac{f'''(0)}{3!}\cdot p_3 + \dotsc </math> と書けば、差商のテイラー級数は <math display="block"> f[x_0,\dots,x_n] = f(0)\cdot p_0[x_0,\dots,x_n] + f'(0)\cdot p_1[x_0,\dots,x_n] + \frac{f''(0)}{2!}\cdot p_2[x_0,\dots,x_n] + \frac{f'''(0)}{3!}\cdot p_3[x_0,\dots,x_n] + \dotsb </math> と書けることになる。この最初の {{mvar|n}} 項は多項式の次数よりも高階の差分だから消えており、それ以降の項も以下のように知ることができる: <math display="block"> \begin{cases} p_j[x_0,\dots,x_n] = 0 & (j < n)\\[3pt] p_n[x_0,\dots,x_n] = 1 & \\[3pt] p_{n+1}[x_0,\dots,x_n] &= x_0 + \dots + x_n \\[8pt] p_{n+m}[x_0,\dots,x_n] &= \displaystyle \sum_{0\le a_1 \le a_2 \le \dots \le a_m \le n} \prod_{j\in \{a_1,a_2,\ldots,a_m\}} x_j. \\ \end{cases} </math> == 行列表示 == 多項式の差商はライプニッツの法則の恩恵を受けられる点で興味を持たれる。 行列 {{mvar|J}} を <math display="block">J=\begin{pmatrix} x_0 & 1 & 0 & 0 & \cdots & 0 \\ 0 & x_1 & 1 & 0 & \cdots & 0 \\ 0 & 0 & x_2 & 1 & & 0 \\ \vdots & \vdots & & \ddots & \ddots & \\ \vdots & \vdots & & & \ddots & 1\\ 0 & 0 & 0 & 0 & \cdots & x_n \end{pmatrix} </math> とすれば、これは節点 {{math|''x''{{sub|0}}, …, ''x{{sub|n}}''}} に関する[[恒等写像]] {{math|1=''f''(''x'') = ''x''}} の差商をすべて包摂したものと考えることができる。特に {{mvar|J{{exp|n}}}} は[[冪函数]] {{mvar|x{{sup|n}}}} に対する差商が全て現れる。差商の線型性により、[[多項式]] {{mvar|p}} に対する多項式函数を {{mvar|J}} に[[汎函数計算|適用]]したものは、<math display="block">\begin{align} p(J) & = a_0\cdot I + a_1\cdot J + \dots + a_n\cdot J^n\\[5pt] & = \begin{pmatrix} p[x_0] & p[x_0,x_1] & p[x_0,x_1,x_2] & \ldots & p[x_0,\dots,x_n] \\ 0 & p[x_1] & p[x_1,x_2] & \ldots & p[x_1,\dots,x_n] \\[10pt] \vdots & \ddots & \ddots & \ddots & \vdots \\[10pt] 0 & \ldots & 0 & 0 & p[x_n] \end{pmatrix} \end{align}</math> と書くことができ、'''オピッツの公式'''と呼ばれる<ref>[[Carl de Boor|de Boor, Carl]], ''Divided Differences'', Surv. Approx. Theory 1 (2005), 46–69, [http://www.emis.ams.org/journals/SAT/papers/2/]</ref><ref>Opitz, G. ''Steigungsmatrizen'', Z. Angew. Math. Mech. (1964), 44, T52–T54</ref>。 多項式 {{mvar|p}} の次数を無限大に飛ばして[[形式冪級数]]とすれば、テイラー展開可能な函数 {{mvar|f}} に対しても、その差商を {{mvar|J}} を用いた行列表示 <math display="block">T_f(x_0,\dots,x_n)= f(J) = \begin{pmatrix} f[x_0] & f[x_0,x_1] & f[x_0,x_1,x_2] & \ldots & f[x_0,\dots,x_n] \\ 0 & f[x_1] & f[x_1,x_2] & \ldots & f[x_1,\dots,x_n] \\[20pt] \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \ldots & f[x_n] \end{pmatrix}</math> によって与えることができる。 節点 {{math|''x''{{sub|0}}, …, ''x{{sub|n}}''}} が全て等しいとき、{{mvar|J}} はジョルダン細胞であり、[[ジョルダン標準形]]を考えることでスカラー函数を[[行列函数]]に一般化することができる。 == 関連項目 == * [[差分商]] * {{ill2|ネヴィルの補間法|en|Neville's algorithm}} * [[多項式補間]] * [[差商に関する平均値定理]] * [[ネールント–ライス積分]] * [[パスカルの三角形]] == 参考文献 == {{reflist|1}} * {{cite book|author=[[L. M. Milne-Thomson|Louis Melville Milne-Thomson]]|title=The Calculus of Finite Differences|year=2000|origyear=1933|publisher=American Mathematical Soc.|isbn=978-0-8218-2107-7|at=Chapter 1: Divided Differences}} * {{cite book|author1=Myron B. Allen|author2=Eli L. Isaacson|title=Numerical Analysis for Applied Science|year=1998|publisher=John Wiley & Sons|isbn=978-1-118-03027-1|at=Appendix A}} * {{cite book|author=Ron Goldman|title=Pyramid Algorithms: A Dynamic Programming Approach to Curves and Surfaces for Geometric Modeling|year=2002|publisher=Morgan Kaufmann|isbn=978-0-08-051547-2|at=Chapter 4:Newton Interpolation and Difference Triangles}} == 外部リンク == * {{MathWorld|urlname=DividedDifference|title=Divided Difference}} * {{PlanetMath|urlname=DividedDifference|title=divided difference}} * An [http://code.haskell.org/~thielema/htam/src/Numerics/Interpolation/DividedDifference.hs implementation] in [[Haskell (programming language)|Haskell]]. {{DEFAULTSORT:さしよう}} [[Category:有限差分]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Ill2
(
ソースを閲覧
)
テンプレート:Kotobank
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Main
(
ソースを閲覧
)
テンプレート:Math
(
ソースを閲覧
)
テンプレート:MathWorld
(
ソースを閲覧
)
テンプレート:Mvar
(
ソースを閲覧
)
テンプレート:PlanetMath
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
差商
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報