Algorithm for computing polynomial coefficients
数学において、差分商法は、歴史的には対数表や三角関数の表を計算するために使用されてきたアルゴリズムである。[要出典]チャールズ・バベッジの差分機関は、初期の機械式計算機であり、このアルゴリズムを動作に利用するように設計された。[1]
差商法は再帰的な 除算処理です。データ点の列が与えられた場合、この手法ではこれらの点のニュートン形式における補間多項式の係数を計算します。
これは、バー付きのデルタ または で表されることもあります。

意味
n + 1 個のデータ ポイントがペアごとに異なると仮定すると、前方分割差は次のように定義されます。

![{\displaystyle {\begin{aligned}{\mathopen {[}}y_{k}]&:=y_{k},&&k\in \{0,\ldots ,n\}\\{\mathopen {[}}y_{k},\ldots ,y_{j}]&:={\frac {[y_{k+1},\ldots ,y_{j}]-[y_{k},\ldots ,y_{j-1}]}{x_{j}-x_{k}}},&&k\in \{0,\ldots ,n-1\},\ j\in \{k+1,\ldots ,n\}.\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
計算の再帰プロセスをより明確にするために、分割された差を表形式にすることができます。表の列は上記のjの値に対応し、表の各エントリは、そのすぐ左下のエントリとすぐ左上のエントリの差を、対応するx値の差で割って計算されます。![{\displaystyle {\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{行列}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
表記
差商は値とに依存するが、表記法によってx値への依存性が隠蔽される点に注意されたい。データ点が関数fによって与えられる場合、差商を表記法で書くこともある。
関数ƒのノードx 0 , ..., x nにおける差商のその他の表記法は以下の通りである。![{\displaystyle [y_{k},\ldots ,y_{k+j}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)



![{\displaystyle f[x_{k},\ldots ,x_{k+j}]\ {\stackrel {\text{def}}{=}}\ [f(x_{k}),\ldots ,f(x_{k+j})]=[y_{k},\ldots ,y_{k+j}].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle f[x_{k},\ldots,x_{k+j}]={\mathopen {[}}x_{0},\ldots,x_{n}]f={\mathopen {[}}x_{0},\ldots,x_{n};f]=D[x_{0},\ldots,x_{n}]f.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
例
と の最初のいくつかの値の差商:

したがって、これらの用語を 2 列まで対応する表は次の形式になります。
プロパティ
- 直線性
![{\displaystyle {\begin{aligned}(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{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- ライプニッツの法則
![{\displaystyle (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}]=\sum _{r=0}^{n}f[x_{0},\ldots ,x_{r}]\cdot g[x_{r},\ldots ,x_{n}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- 差商は対称的である。もしが順列ならば

![{\displaystyle f[x_{0},\dots ,x_{n}]=f[x_{\sigma (0)},\dots ,x_{\sigma (n)}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- ニュートン形式の多項式補間: が次数の多項式関数であり、が差の商である場合、


![{\displaystyle p[x_{0},\dots,x_{n}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle P_{n-1}(x)=p[x_{0}]+p[x_{0},x_{1}](x-x_{0})+p[x_{0},x_{1},x_{2}](x-x_{0})(x-x_{1})+\cdots +p[x_{0},\ldots ,x_{n}](x-x_{0})(x-x_{1})\cdots (x-x_{n-1})}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- が次数 の多項式関数である場合、


![{\displaystyle p[x_{0},\dots,x_{n}]=0.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- 差分商の平均値定理:がn回微分可能な場合、の最小値と最大値によって決まる開区間内の数値に対してです。

![{\displaystyle f[x_{0},\dots,x_{n}]={\frac {f^{(n)}(\xi )}{n!}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)


差分商法は上三角行列に表すことができます。![{\displaystyle T_{f}(x_{0},\dots ,x_{n})={\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}]\\0&0&f[x_{2}]&\ldots &f[x_{2},\dots ,x_{n}]\\\vdots &\vdots &&\ddots &\vdots \\0&0&0&\ldots &f[x_{n}]\end{pmatrix}}.}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
そしてそれは保持されます

スカラーの場合
これはライプニッツの定理に従う。つまり、このような行列の乗算は可換である。まとめると、同じノード集合xに関する差分商法の行列は可換環を形成する。- は三角行列なので、その固有値は明らかに です。


- をクロネッカーのデルタ型関数とします。明らかになので、 は点ごとの関数乗算の固有関数です。つまり、 は の「固有行列」です。しかし、 のすべての列は互いの倍数であり、の行列階数は1です。したがって、 のすべての固有ベクトルの行列は、各 の 第列から構成できます。固有ベクトルの行列を で表します。例 の対角化は次のように表すことができます。
















多項式とべき級数
行列は
、ノードに関する恒等関数の差分商法を含んでおり、したがって指数のべき乗関数の差分商法も含んでいます。したがって、行列に を適用することで、多項式関数の差分商法を得ることができます。の場合、 となり、 となります。
これはオピッツの公式として知られています。[2] [3]







ここで、 の次数を無限大に増やすこと、つまりテイラー多項式をテイラー級数に変換することを考えてみましょう。をべき級数に対応する関数とします。に対応する行列級数を に適用することで、の差分商法を計算できます。 の場合、そして、






代替的な特徴づけ
![{\displaystyle {\begin{aligned}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})}}+\\&\quad \quad {\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})}}\\f[x_{0},\dots ,x_{n}]&=\sum _{j=0}^{n}{\frac {f(x_{j})}{\prod _{k\in \{0,\dots ,n\}\setminus \{j\}}(x_{j}-x_{k})}}\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
多項式関数 の助けを借りれば、これは次のように書ける。
![{\displaystyle f[x_{0},\dots ,x_{n}]=\sum _{j=0}^{n}{\frac {f(x_{j})}{\omega '(x_{j})}}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
との場合、差商は次のように表すことができます[4]。ここで、は関数の-次導関数であり、はデータポイント に対する次の式で表される特定のB-スプライン次数です。

![{\displaystyle f[x_{0},\ldots ,x_{n}]={\frac {1}{(n-1)!}}\int _{x_{0}}^{x_{n}}f^{(n)}(t)\;B_{n-1}(t)\,dt}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)







これは、ペアノ核定理の結果です。これは、商差のペアノ形式、商差のペアノ核と呼ばれ、すべてジュゼッペ・ペアノにちなんで名付けられています。
前方と後方の差異
データポイントが等間隔に分布している場合、前進差分と呼ばれる特殊なケースになります。これは、より一般的な除算差分よりも計算が容易です。
n +1 個のデータ ポイントが与えられ、前進差分は次のように定義されます。一方、後退差分は次のように定義されます。したがって、前進差分表は次のように表されます。一方、後退差分表は次のように表されます。





分割差異と前進差異の関係は[5]であるが、後退差異については次のようになる。[引用が必要]![{\displaystyle [y_{j},y_{j+1},\ldots ,y_{j+k}]={\frac {1}{k!h^{k}}}\Delta ^{(k)}y_{j},}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle [{y}_{j},y_{j-1},\ldots ,{y}_{jk}]={\frac {1}{k!h^{k}}}\nabla ^{(k)}y_{j}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
データ点が等間隔に並んでいる場合、 の明示的な式も導出できる。 となる任意の固定されたとに対して、![{\displaystyle [y_{j},\ldots ,y_{j+k}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)



![{\displaystyle [y_{j},\ldots ,y_{j+k}]={\frac {(-1)^{j+k}}{k!h^{k}}}\sum _{i=j}^{j+k}(-1)^{i}y_{i}{\binom {k}{ij}}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
証明.これを帰納法で証明する:
基本ケース:ととします。定義により となり、 

![{\displaystyle [y_{j}]=y_{j}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)

帰納法のステップ:上式が まで成り立つと仮定し、となるようなものを考える。再帰的定義により、


![{\displaystyle [y_{j},\ldots ,y_{j+k+1}]={\frac {1}{h(k+1)}}\left([y_{j+1},\ldots ,y_{j+k+1}]-[y_{j},\ldots ,y_{j+k}]\right).}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
左辺の両項に帰納的仮定を適用して、

これを次のように並べ替えることもできる。

となる 。恒等式を代入することで、 の命題が得られる。



参照
参考文献
- ^ アイザックソン、ウォルター (2014). 『イノベーターズ』 サイモン&シュスター社. p. 20. ISBN 978-1-4767-0869-0。
- ^ デ・ブール、カール、「差異の分割」、調査近似理論1(2005年)、46-69、[1]
- ^ Opitz、G. Steigungsmatrizen、Z. Angew。数学。メカ。 (1964)、44、T52–T54
- ^ Skof, Fulvia (2011-04-30). ジュゼッペ・ペアノ:数学と論理の間:ジュゼッペ・ペアノ生誕150周年および数学公式100周年を記念した国際会議議事録(イタリア、トリノ)2008年10月2日~3日. Springer Science & Business Media. p. 40. ISBN 978-88-470-1836-5。
- ^ Burden, Richard L.; Faires, J. Douglas (2011).数値解析(第9版). Cengage Learning. p. 129. ISBN 9780538733519。
外部リンク