Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

マクローリン展開(関数の多項式近似)

関数の多項式近似

ある関数 y=f(x)x=0 付近で次のような多項式で近似する方法を考えます。
 (A)f(x)a0+a1x+a2x2+a3x3++anxn
まず x=0f(0) に一致していないと話にならないので、a0=f(0) というように定数項が定まります。ついでに 1 階微分したときの x=0 の値も一致させようと考えます。
 f(x)a1+2a2x+3a3x2+
ですから、2 つめの係数は a1=f(0) と決まります。さらに欲張って 2 階微分したときの x=0 の値も一致させようと考えて
 f(x)2a2+23a3x+
より a2=f(0)/2 となります。以下同様にして
 a3=f(3)(0)3!,a4=f(4)(0)4!,,an=f(n)(0)n!
が定まります。すなわち関数 f(x)
 (B)f(x)f(0)+f(0)x+f(0)2!x2++f(n)(0)n!xn
のように近似されます。以下でより厳密な方法で証明します。

マクローリン展開

近似式には誤差がつきものですから、(B) を誤差 Rn+1 を含んだ形で書き換えます。
 f(x)f(0)+f(0)x+f(0)2!x2++f(n)(0)n!xn+Rn+1
以降の議論はかなり技巧的になります。まず誤差は
  Rn+1=Axn+1
のような形になると予想します(これは自然な予想といえます)。そして(あとで平均値の定理が使えるように)g(0)=g(x) を満たすような k についての関数 g(k) を次のように定義します。
 g(k)=f(x)f(k)f(k)(xk)f(k)2!(xk)2f(n)(0)n!(xk)nA(xk)n+1
x>0 とすると、g(k) は区間 [0,x] において微分可能なので、平均値の定理 から
 g(x)g(0)x=g(c)
となる点 c が区間 (0,x) に少なくとも 1 つは存在します。g(0)=g(x) なので左辺は 0 です。つまり g(c)=0 となる点 c が存在するということです。g(k) を微分して整理すると
 g(k)=[Af(n+1)(k)(n+1)!](n+1)(xk)m
という式が得られます。g(c)=0 なので
 A=f(n+1)(c)(n+1)!
と定まります。すなわち誤差は
 Rn+1=f(n+1)(c)(n+1)!xn+1(0<c<x)
であることがわかりました。c=θx と置き換えると
 (C)Rn+1=f(n+1)(θx)(n+1)!xn+1(0<θ<1)
と表せます。この誤差をラグランジュ型剰余項とよびます。また剰余項を含んだ展開式
 (D)f(x)f(0)+f(0)x+f(0)2!x2++f(n)(0)n!xn+Rn+1
のことをマクローリン展開 といいます。最も簡単な例として、指数関数 f(x)=ex をマクローリン展開してみると
 ex=1+x+x22!++xn(0)n!+Rn+1
となり、剰余項は
 eθxxn+1(c)(n+1)!
と表せます。以下によく使われる関数のマクローリン展開を載せておきます。
 
ex=nxnn!+eθxxn+1(c)(n+1)!sinx=n(1)n1x2n1(2n1)!+(1)nx2n+1(2n+1)!cosθxcosx=n(1)nx2n(2n)!+(1)nx2n+2(2n+2)!cosθxlog(1+x)=n(1)nxnn+(1)nxn+1n+1(11+θx)n+1(1+x)k=nk(k1)(kn+1)xnn!+k(k1)(kn)(n+1)!(1+θx)kn1xn+1

マクローリン級数

マクローリン展開において無限の項数をとったときに剰余項 Rn+1 が 0 に収束するならば、関数を次のように無限級数で表すことができます。
 (E)f(x)=f(0)+f(0)x+f(0)2!x2++f(n)(0)n!xn++
このような級数のことをマクローリン級数とよびます。この級数展開を使うときは Rn+1 が 0 に収束する x の範囲に注意しなくてはなりません。以下によく使われる関数のマクローリン級数を載せておきます。
 ex=1+x+x22!+x33!+sinx=xx33!+x55!x77!+cosx=1x22!+x44!x66!+tanx=x+x33+2x515+17x7315+(π/2<x<π/2)log(a+x)=loga+xax22a2+x33a2(a<x<a)
() に級数が収束する x の範囲が示されています。何も書かれていなければ、すべての x で収束します。

エクセルや数学に関するコメントをお寄せください