前進・後退・中心差分
主に前進、後退、中心差分の三種類が広く用いられる[ 1] [ 2] [ 3] 。
前進差分
Δ
h
[
f
]
(
x
)
=
f
(
x
+
h
)
−
f
(
x
)
.
{\\displaystyle \\Delta _{h}[f](x)=f(x+h)-f(x).}
後退差分
∇
h
[
f
]
(
x
)
=
f
(
x
)
−
f
(
x
−
h
)
.
{\\displaystyle \\nabla _{h}[f](x)=f(x)-f(x-h).}
中心差分
δ
h
[
f
]
(
x
)
=
f
(
x
+
1
2
h
)
−
f
(
x
−
1
2
h
)
.
{\\displaystyle \\delta _{h}[f](x)=f(x+{\\tfrac {1}{2}}h)-f(x-{\\tfrac {1}{2}}h).}
応用の場面に応じて、歩み h は変数と見ることも定数と見ることもある。添字の h を省略したときは、h = 1 の意味(Δ [f ](x ) = Δ 1 [f ](x ) など)である。
函数 f の点 x における微分 は函数の極限
f
′
(
x
)
=
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
{\\displaystyle f'(x)=\\lim _{h\\to 0}{\\frac {f(x+h)-f(x)}{h}}}
で定義される。ここで h を零に近づける代わりに非負の値に固定すれば、右辺は
f
(
x
+
h
)
−
f
(
x
)
h
=
Δ
h
[
f
]
(
x
)
h
{\\displaystyle {\\frac {f(x+h)-f(x)}{h}}={\\frac {\\Delta _{h}[f](x)}{h}}}
と書けるから、これは h が小さいとき、歩み h の前進差分が微分を近似するものであることを意味する。この近似の誤差はテイラーの定理 から評価することができる。実際、f が微分可能であると仮定すれば
Δ
h
[
f
]
(
x
)
h
−
f
′
(
x
)
=
O
(
h
)
→
0
(
as
h
→
0
)
{\\displaystyle {\\frac {\\Delta _{h}[f](x)}{h}}-f'(x)=O(h)\\to 0\\quad ({\\text{as }}h\\to 0)}
であり、前進差分に関しても同じ式
∇
h
[
f
]
(
x
)
h
−
f
′
(
x
)
=
O
(
h
)
→
0
(
as
h
→
0
)
{\\displaystyle {\\frac {\\nabla _{h}[f](x)}{h}}-f'(x)=O(h)\\to 0\\quad ({\\text{as }}h\\to 0)}
が満足される。中心差分を用いればより精密な近似が可能で、f が二回微分可能ならば
δ
h
[
f
]
(
x
)
h
−
f
′
(
x
)
=
O
(
h
2
)
{\\displaystyle {\\frac {\\delta _{h}[f](x)}{h}}-f'(x)=O(h^{2})}
が成り立つ。しかし中心差分法の主な問題は、振動する函数の微分が零ということになってしまう場合があることである。例えば、奇数の n に対して f (nh ) = 1 かつ偶数の n に対して f (nh ) = 2 とすれば、中心差分法で計算すると f' (nh ) = 0 となる。これは f の定義域が離散の場合に特に問題になる。
「有限差分」を有限差分近似の意味で用いる文献では、「前進・後退・中心差分」は(前節の意味ではなく)本節で言う商として定義される[ 1] [ 2] [ 3] 。
高階差分
微分の有限差分近似と対応して、高階微分の有限差分近似が得られる。例えば、中心差分の式を f' (x +h /2) と f' (x −h /2) に対して考え、f' の微分の中心差分近似に適用すれば、f の二回微分の近似式として
二階中心差分
f
″
(
x
)
≈
δ
h
2
[
f
]
(
x
)
h
2
=
f
(
x
+
h
)
−
2
f
(
x
)
+
f
(
x
−
h
)
h
2
{\\displaystyle f''(x)\\approx {\\frac {\\delta _{h}^{2}[f](x)}{h^{2}}}={\\frac {f(x+h)-2f(x)+f(x-h)}{h^{2}}}}
が得られる。同様にほかの差分公式を繰り返し適用すれば
二階前進差分
f
″
(
x
)
≈
Δ
h
2
[
f
]
(
x
)
h
2
=
f
(
x
+
2
h
)
−
2
f
(
x
+
h
)
+
f
(
x
)
h
2
.
{\\displaystyle f''(x)\\approx {\\frac {\\Delta _{h}^{2}[f](x)}{h^{2}}}={\\frac {f(x+2h)-2f(x+h)+f(x)}{h^{2}}}.}
なども得られる。より一般にn -階前進、後退、中心差分はそれぞれ
n -階前進差分
Δ
h
n
[
f
]
(
x
)
=
∑
i
=
0
n
(
−
1
)
i
(
n
i
)
f
(
x
+
(
n
−
i
)
h
)
,
{\\displaystyle \\Delta _{h}^{n}[f](x)=\\sum _{i=0}^{n}(-1)^{i}{\\binom {n}{i}}f(x+(n-i)h),}
Δ
n
[
f
]
(
x
)
=
∑
k
=
0
n
(
n
k
)
(
−
1
)
n
−
k
f
(
x
+
k
)
(
for
h
=
1
)
.
{\\displaystyle \\Delta ^{n}[f](x)=\\sum _{k=0}^{n}{\\binom {n}{k}}(-1)^{n-k}f(x+k)\\quad ({\\text{for }}h=1).}
n -階後退差分
∇
h
n
[
f
]
(
x
)
=
∑
i
=
0
n
(
−
1
)
i
(
n
i
)
f
(
x
−
i
h
)
,
{\\displaystyle \\nabla _{h}^{n}[f](x)=\\sum _{i=0}^{n}(-1)^{i}{\\binom {n}{i}}f(x-ih),}
n -階中心差分
δ
h
n
[
f
]
(
x
)
=
∑
i
=
0
n
(
−
1
)
i
(
n
i
)
f
(
x
+
(
n
2
−
i
)
h
)
{\\displaystyle \\delta _{h}^{n}[f](x)=\\sum _{i=0}^{n}(-1)^{i}{\\binom {n}{i}}f\\left(x+\\left({\\frac {n}{2}}-i\\right)h\\right)}
で与えられる。上記において、(n i ) は二項係数 である(各 i に対する係数はパスカルの三角形 の各行で与えられる)。
中心差分においては n が奇数のとき h が非整数倍されることに留意すべきである。これは離散化の幅を変えることになるため、しばしば問題になる。この問題は δ n [f ](x − h /2) と δ n [f ](x + h /2) との平均をとることで除くことができる。
数列 に前進差分を施すことを、その数列の二項変換 (英語版 ) と呼ぶことがあり、組合せ論的に興味深い様々な性質がある。前進差分をネールント–ライス積分 を用いて評価することができる。このような種類の級数に対する積分表現は、積分が漸近展開 や鞍点法 で評価されることがしばしばあり、重要である(対照的に前進差分級数は、大きな n に対しては二項係数が急速に増大するため、数値的に評価することが極めて難しい)。
これら高階差分と微分との関係はそれぞれ直接的に
d
n
f
d
x
n
(
x
)
=
Δ
h
n
[
f
]
(
x
)
h
n
+
O
(
h
)
=
∇
h
n
[
f
]
(
x
)
h
n
+
O
(
h
)
=
δ
h
n
[
f
]
(
x
)
h
n
+
O
(
h
2
)
{\\displaystyle {\\frac {d^{n}f}{dx^{n}}}(x)={\\frac {\\Delta _{h}^{n}[f](x)}{h^{n}}}+O(h)={\\frac {\\nabla _{h}^{n}[f](x)}{h^{n}}}+O(h)={\\frac {\\delta _{h}^{n}[f](x)}{h^{n}}}+O(h^{2})}
となる。高階微分はより良い近似を構成するためにも利用できる。上で述べたように、一階差分近似は h のオーダー の項を除いて 一階微分を近似するものであるが、高階微分を組み合わせた
Δ
h
[
f
]
(
x
)
−
1
2
Δ
h
2
[
f
]
(
x
)
h
=
−
f
(
x
+
2
h
)
−
4
f
(
x
+
h
)
+
3
f
(
x
)
2
h
{\\displaystyle {\\frac {\\Delta _{h}[f](x)-{\\frac {1}{2}}\\Delta _{h}^{2}[f](x)}{h}}=-{\\frac {f(x+2h)-4f(x+h)+3f(x)}{2h}}}
は f' (x ) と h 2 のオーダーの項しか違わない。これを示すには、先述のようにテイラー級数 展開してもよいし、後述のように有限差分の汎函数計算を用いてもよい。
必要ならば、前進・後退・中心差分を混合して任意の点を有限差分の中心にすることができる。
性質
任意の正整数 k, n に対して
Δ
k
h
n
(
f
,
x
)
=
∑
i
1
=
0
k
−
1
∑
i
2
=
0
k
−
1
⋯
∑
i
n
=
0
k
−
1
Δ
h
n
(
f
,
x
+
i
1
h
+
i
2
h
+
⋯
+
i
n
h
)
.
{\\displaystyle \\Delta _{kh}^{n}(f,x)=\\sum \\limits _{i_{1}=0}^{k-1}\\sum \\limits _{i_{2}=0}^{k-1}\\cdots \\sum \\limits _{i_{n}=0}^{k-1}\\Delta _{h}^{n}(f,x+i_{1}h+i_{2}h+\\cdots +i_{n}h).}
ライプニッツ則:
Δ
h
n
(
f
g
,
x
)
=
∑
k
=
0
n
(
n
k
)
Δ
h
k
(
f
,
x
)
Δ
h
n
−
k
(
g
,
x
+
k
h
)
.
{\\displaystyle \\Delta _{h}^{n}(fg,x)=\\sum \\limits _{k=0}^{n}{\\binom {n}{k}}\\Delta _{h}^{k}(f,x)\\Delta _{h}^{n-k}(g,x+kh).}
有限差分法
有限差分の重要な応用として、数値解析 、特に数値微分方程式 論において、常微分 および偏微分方程式 の数値解を得る目的での利用が挙げられる。これは、微分方程式に現れる微分を、それを近似する有限差分で置き換えるという考え方である。これを有限差分法 と呼ぶ。
有限差分法は、計算機科学や工学の熱工学 や流体力学 などといった分野においてよく応用される。
ニュートン級数
ニュートン級数 はニュートン の前進差分方程式の項からなる。これは本質的にニュートン補間公式 であり、1687年に著書『プリンキピア・マスマティカ 』において最初に公表された[ 5] 。具体的には、連続的なテイラー展開の離散版
f
(
x
)
=
∑
k
=
0
∞
Δ
k
[
f
]
(
a
)
k
!
(
x
−
a
)
k
=
∑
k
=
0
∞
(
x
−
a
k
)
Δ
k
[
f
]
(
a
)
{\\displaystyle f(x)=\\sum _{k=0}^{\\infty }{\\frac {\\Delta ^{k}[f](a)}{k!}}(x-a)_{k}=\\sum _{k=0}^{\\infty }{x-a \\choose k}~\\Delta ^{k}[f](a)}
が任意の多項式函数 f に対して成立する。これはさらに多くの(全てではない)解析函数 でも成立する。ここで
(
x
k
)
=
(
x
)
k
k
!
{\\displaystyle {x \\choose k}={\\frac {(x)_{k}}{k!}}}
は二項係数 であり、
(
x
)
k
=
x
(
x
−
1
)
(
x
−
2
)
⋯
(
x
−
k
+
1
)
{\\displaystyle (x)_{k}=x(x-1)(x-2)\\cdots (x-k+1)}
は下降階乗 (下方階乗)である(空積 (x )0 は 1 とする)。これは後述する一般化において、x の変化の歩み (step) が h = 1 であると仮定した特別の場合である。
この結果とテイラーの定理 との形式的な対応に注意せよ。歴史的には、これとファンデルモンド恒等式 (英語版 )
(
x
+
y
)
n
=
∑
k
=
0
n
(
n
k
)
(
x
)
n
−
k
(
y
)
k
{\\displaystyle (x+y)_{n}=\\sum _{k=0}^{n}{n \\choose k}(x)_{n-k}~(y)_{k}}
(二項定理 に対応する)は、陰計算 の体系に至る観察に含まれる。
p -進解析学 において、マーラーの定理 は f が多項式函数であるという仮定は単に連続であるという仮定に緩めることができることを述べる。
カールソンの定理 (英語版 ) はニュートン級数が(存在すれば)一意であるための必要十分条件を与える。しかし一般にはニュートン級数の存在は保証されない。
ニュートン級数、スターリング補間多項式、セルバーグ多項式は、一般の差分多項式 の特別の場合である。これらは全て適当にスケールされた前進差分の言葉で定義される。
In a compressed and slightly more general form and equidistant nodes the formula reads
f
(
x
)
=
∑
k
=
0
(
x
−
a
h
k
)
∑
j
=
0
k
(
−
1
)
k
−
j
(
k
j
)
f
(
a
+
j
h
)
.
{\\displaystyle f(x)=\\sum _{k=0}{{\\frac {x-a}{h}} \\choose k}\\sum _{j=0}^{k}(-1)^{k-j}{k \\choose j}f(a+jh).}
有限差分に関する演算子法
前進差分を、函数 f を Δh [f ] へ写す差分作用素 と考えることができる[ 6] [ 7] 。この作用素は、歩み h のシフト作用素 T h を用いて
Δ
h
=
T
h
−
I
{\\displaystyle \\Delta _{h}=T_{h}-I}
という和に書くことができる。ここに、T h [f ](x ) = f (x +h ) および I は恒等作用素 である。
高階の有限差分は再帰的に Δh n ≡ Δh (Δh n − 1 ) と定義することができるが、これと同値な別定義として Δh n = [T h −I ]n とすることもできる。
差分作用素 Δh は線型作用素 であり、上で述べた特別なライプニッツ則 Δh (f (x )g (x )) = (Δh f (x )) g (x +h ) + f (x ) (Δh g (x )) を満足する。後退および中心差分に関しても同様のことが成立する。
h に関するテイラー級数 を形式的に適用することで、等式
Δ
h
=
h
D
+
1
2
h
2
D
2
+
1
3
!
h
3
D
3
+
⋯
=
e
h
D
−
I
{\\displaystyle \\Delta _{h}=hD+{\\frac {1}{2}}h^{2}D^{2}+{\\frac {1}{3!}}h^{3}D^{3}+\\dotsb =e^{hD}-I}
が得られる。ここで D は函数 f をその導函数 f' へ写す連続的な微分作用素である。十分小さな h に対して、この展開は両辺が解析函数 に作用するとき有効である。従って T h = e hD であり、逆に冪指数に関して解いて
h
D
=
log
(
1
+
Δ
h
)
=
Δ
h
−
1
2
Δ
h
2
+
1
3
Δ
h
3
+
⋯
{\\displaystyle hD=\\log(1+\\Delta _{h})=\\Delta _{h}-{\\tfrac {1}{2}}\\Delta _{h}^{2}+{\\tfrac {1}{3}}\\Delta _{h}^{3}+\\dotsb }
が得られる。この式は両辺が多項式に作用して同じ結果を与えるという意味において正しい。
解析函数に作用する場合でも、右辺の級数の収束は保証されず、漸近級数 となり得る。しかし、微分に対するより精密な近似を得ることには利用できる。例えば、例えばこの級数の最初の二項だけを取り出せば、#高階差分 の節の最後に述べた f ' (x ) の二階近似が導かれる。
後退および中心差分に対する同様の公式は
h
D
=
−
log
(
1
−
∇
h
)
,
h
D
=
2
arsinh
(
1
2
δ
h
)
{\\displaystyle hD=-\\log(1-\\nabla _{h}),\\quad hD=2\\operatorname {arsinh} ({\\tfrac {1}{2}}\\delta _{h})}
となる。
有限差分作用素の計算法則
微分法則 (英語版 ) と対応して、
定数律 : c が定数ならば
Δ
c
=
0
{\\displaystyle \\Delta c=0}
が成り立つ。
線型性 : 定数 a, b に対して
Δ
(
a
f
+
b
g
)
=
a
Δ
f
+
b
Δ
g
{\\displaystyle \\Delta (af+bg)=a\\Delta f+b\\Delta g}
が成り立つ。
この二つの法則は他の差分作用素でも成り立つ。
積の差分 :
Δ
(
f
g
)
=
f
Δ
g
+
g
Δ
f
+
Δ
f
Δ
g
,
{\\displaystyle \\Delta (fg)=f\\Delta g+g\\Delta f+\\Delta f\\,\\Delta g,}
∇
(
f
g
)
=
f
∇
g
+
g
∇
f
−
∇
f
∇
g
.
{\\displaystyle \\nabla (fg)=f\\nabla g+g\\nabla f-\\nabla f\\,\\nabla g.}
商の差分 :
∇
(
f
g
)
=
1
g
det
(
∇
f
∇
g
f
g
)
(
det
(
g
∇
g
1
1
)
)
−
1
{\\displaystyle \\nabla \\left({\\frac {f}{g}}\\right)={\\frac {1}{g}}\\det {\\begin{pmatrix}\\nabla f&\\nabla g\\\\f&g\\end{pmatrix}}\\left(\\det {\\begin{pmatrix}g&\\nabla g\\\\1&1\\end{pmatrix}}\\right)^{-1}}
あるいは
∇
(
f
g
)
=
g
∇
f
−
f
∇
g
g
⋅
(
g
−
∇
g
)
,
{\\displaystyle \\nabla \\left({\\frac {f}{g}}\\right)={\\frac {g\\,\\nabla f-f\\,\\nabla g}{g\\cdot (g-\\nabla g)}},}
Δ
(
f
g
)
=
g
Δ
f
−
f
Δ
g
g
⋅
(
g
+
Δ
g
)
.
{\\displaystyle \\Delta \\left({\\frac {f}{g}}\\right)={\\frac {g\\,\\Delta f-f\\,\\Delta g}{g\\cdot (g+\\Delta g)}}.}
和分 :
∑
n
=
a
b
Δ
f
(
n
)
=
f
(
b
+
1
)
−
f
(
a
)
,
{\\displaystyle \\sum _{n=a}^{b}\\Delta f(n)=f(b+1)-f(a),}
∑
n
=
a
b
∇
f
(
n
)
=
f
(
b
)
−
f
(
a
−
1
)
.
{\\displaystyle \\sum _{n=a}^{b}\\nabla f(n)=f(b)-f(a-1).}
See Refs [ 8] [ 9] [ 10] [ 11]
一般化
一般化された有限差分 は μ = (μ 0 , …, μ N ) を係数列として
Δ
h
μ
[
f
]
(
x
)
=
∑
k
=
0
N
μ
k
f
(
x
+
k
h
)
{\\displaystyle \\Delta _{h}^{\\mu }[f](x)=\\sum _{k=0}^{N}\\mu _{k}f(x+kh)}
と定義されるのが普通である。さらに右辺の和を無限級数 に取り換えた一般化として無限差分 (infinite difference ) が定義される。別な一般化としては、係数 μ k が x に依存することを許して μ k = μ k (x ) とすることで、重み付き有限差分 (weighted finite difference ) が考えられる。あるいはまた、歩み h が x に依存する (h = h (x ) ) とすることも考えられる。そのような一般化は別種の連続度 (英語版 ) を構成するのに有用である。
一般化有限差分の全体は多項式環 R [T h ] と見ることができる。ここから差分環が考えられる。
差分作用素は半順序集合 上のメビウス反転作用素 に一般化される。
畳み込み表現: 接合環 の方法論を通じて差分作用素やほかのメビウス反転作用素はメビウス函数 と呼ばれる半順序集合上の函数 μ との畳み込み として表される。差分作用素に対するメビウス函数 μ は数列 (1, − 1, 0, 0, 0, …) である。
多変数の有限差分
多変数の場合にも有限差分は考えることができる。それらは多変数の偏微分 に対応するものである。
中心差分による偏微分近似をいくつか挙げれば
f
x
(
x
,
y
)
≈
f
(
x
+
h
,
y
)
−
f
(
x
−
h
,
y
)
2
h
,
{\\displaystyle f_{x}(x,y)\\approx {\\frac {f(x+h,y)-f(x-h,y)}{2h}},}
f
y
(
x
,
y
)
≈
f
(
x
,
y
+
k
)
−
f
(
x
,
y
−
k
)
2
k
,
{\\displaystyle f_{y}(x,y)\\approx {\\frac {f(x,y+k)-f(x,y-k)}{2k}},}
f
x
x
(
x
,
y
)
≈
f
(
x
+
h
,
y
)
−
2
f
(
x
,
y
)
+
f
(
x
−
h
,
y
)
h
2
,
{\\displaystyle f_{xx}(x,y)\\approx {\\frac {f(x+h,y)-2f(x,y)+f(x-h,y)}{h^{2}}},}
f
y
y
(
x
,
y
)
≈
f
(
x
,
y
+
k
)
−
2
f
(
x
,
y
)
+
f
(
x
,
y
−
k
)
k
2
,
{\\displaystyle f_{yy}(x,y)\\approx {\\frac {f(x,y+k)-2f(x,y)+f(x,y-k)}{k^{2}}},}
f
x
y
(
x
,
y
)
≈
f
(
x
+
h
,
y
+
k
)
−
f
(
x
+
h
,
y
−
k
)
−
f
(
x
−
h
,
y
+
k
)
+
f
(
x
−
h
,
y
−
k
)
4
h
k
.
{\\displaystyle f_{xy}(x,y)\\approx {\\frac {f(x+h,y+k)-f(x+h,y-k)-f(x-h,y+k)+f(x-h,y-k)}{4hk}}.}
のようになる。
参考文献
1 2 3 Paul Wilmott; Sam Howison; Jeff Dewynne (1995). The Mathematics of Financial Derivatives: A Student Introduction . Cambridge University Press. p. 137. ISBN 978-0-521-49789-3
1 2 3 Peter Olver (2013). Introduction to Partial Differential Equations . Springer Science & Business Media. p. 182.
ISBN 978-3-319-02099-0
1 2 3 M Hanif Chaudhry (2007). Open-Channel Flow . Springer. pp. 369.
ISBN 978-0-387-68648-6
↑ Jordán, op. cit., p. 1 and Milne-Thomson, p. xxi. Milne-Thomson, Louis Melville (2000): The Calculus of Finite Differences (Chelsea Pub Co, 2000) ISBN 978-0821821077
↑ Newton, Isaac, (1687). Principia , Book III, Lemma V, Case 1
↑ Boole, George , (1872). A Treatise On The Calculus of Finite Differences , 2nd ed., Macmillan and Company. On line . Also, [Dover edition 1960]
↑ Jordan, Charles, (1939/1965). "Calculus of Finite Differences", Chelsea Publishing. On-line:
↑ Levy, H.; Lessman, F. (1992). Finite Difference Equations . Dover.
ISBN 0-486-67260-3
↑ Ames, W. F., (1977). Numerical Methods for Partial Differential Equations , Section 1.6. Academic Press, New York. ISBN 0-12-056760-1 .
↑ Hildebrand, F. B. , (1968). Finite-Difference Equations and Simulations , Section 2.2, Prentice-Hall, Englewood Cliffs, New Jersey.
↑ Flajolet, Philippe; Sedgewick, Robert (1995). “Mellin transforms and asymptotics: Finite differences and Rice's integrals” . Theoretical Computer Science 144 (1–2): 101–124.
doi :10.1016/0304-3975(94)00281-M . http://www-rocq.inria.fr/algo/flajolet/Publications/mellin-rice.ps.gz
[ リンク切れ ]
.
Richardson, C. H. (1954): An Introduction to the Calculus of Finite Differences (Van Nostrand) (1954) online copy [ リンク切れ ]
Mickens, R. E. (1991): Difference Equations: Theory and Applications (Chapman and Hall/CRC) ISBN 978-0442001360