Loading [MathJax]/jax/output/HTML-CSS/jax.js

自然科学のための数学2014年度第11講

第3章 テイラー展開

 3.1 関数の近似とテイラー展開

  3.1.1 関数の近似

関数を近似的に表現するということを考えてみたい。近似とはすなわち「真実の値とは少し違うが、だいたい等しい数値を求める」という方法である。

近似などせずに真面目に計算すればよいではないか!
と、思う人が多い。「自然科学ともあろうものが『だいたい』なんていいかげんなことでよいのか?」と憤慨する人もいる。しかし、実際にはいろんな理由で近似が必要となる。まず、
真面目に計算することが不可能なほどに難しい関数もある。
ということが大きい。高校までの勉強では(大学でも低学年でなら)ほぼ、「解ける問題」しか出てこない。ところが世の中には「解けない問題」はいくらでもある。高校および大学初年度程度の教科書は「解ける問題」を厳選して載せているのである。では解けない問題が出てきたらどうするかと言えば、「頑張って解く方法を見つける(見つからないかもしれない)」か、「近似してから解く」しかない。
もう1つここで言っておきたいことは、「真面目に解くことはほんとに必要か?」ということである。たとえば(あくまで「たとえば」)近似しないで真面目に解いた場合の答と、近似した結果の答が0.1%(つまり11000ぐらい)違っていたとしよう。その11000の違いが大きな問題になる時もあれば、そうでない時もある。たとえば今最小目盛りが1mmである物差しで20cmぐらいの長さを測定したとしたら、この測定では1200より細かい精度の数字は得られていない。そういう測定で「近似したら11000ぐらい答がずれる!」ということにこだわることは果たして必要だろうか?---近似してよいかまずいかは、要求されている精度によって決まるものである。要求される精度を十分に保つ近似に対して、近似だからといって文句を言われる筋合いはない。

近似としてもっとも大雑把なものは「関数y=f(x)y=f(x0)で代用する」というものである。つまり、実際にはxが変化すれば変化する量であるy=f(x)を、xx0という値であった時に測定したf(x0)で代用する。つまり「xを変えてもy=f(x)はそんなに変わらないだろう」と推測するわけである。こういう近似をやっている例を上げると

先月測った身長は170cmだったが、今月もそんなに変わってないだろう。

という推測だ「関数を定数で代用する」と聞くととんでもないことをやっているように思えるかもしれないが、この例のように「そんなに大きく変わるものではない」ということがわかっている量については、普段からよくやっている。

もう少しまじめに関数を近似するのが「線型近似(linear approximation)」である。「線型(linear)」この場合に限らず、1次式で書けるという性質を「線型」と表す。「線型」と書く人と「線形」と書く人がいるが、意味は変わらない。英語から「リニア」という言い方もする。というのは「グラフで書くと直線になる」という意味で、(y=ax+bのような)1次式で書けるということである(微分のところでは「微小な範囲を考える(グラフを拡大する)」ことで線型近似できる形に持っていった)。

つまりは線型近似とは「1次式で近似する」もしくは「グラフが直線だと近似する」ということになる。たとえば「朝9時の気温が20度で、10時の気温が22度だから、11時の気温は24度だろう」という推測は線型近似である。あくまで近似であるから、推測が当たる時もあるし、当たらない時もあるだろう。「この人は100mを12秒で走れるから、200mは24秒で走れるだろう」というのも線型近似に基づく推測だが、これには当然、「人間は疲れるのでは?」という反論があってしかるべきである逆に、「最初の加速に手間がかかると考えると、長距離が不利とは限らない」という点を考慮すべき場合もある。

微分というのはいろんな関数y=f(x)を「拡大してみれば直線y=ax+bのようなものだ」と大まかな近似として表した時の傾きaである、と言える。もう少し一般的に書けば、

f(x)f(x0)+(ddxf(x0))(xx0)

ということになるこのddxf(x0)は「関数f(x)xで微分した後にxx0を代入したもの」という意味である(先に代入してしまったら微分すると0である)。すでに代入が終わっているので、この後xで微分すると0になる。釈然としない人がいるかもしれないが、これはそういう書き方をするのが(式を簡単に書くための)決め事なのだと思ってほしい。xx0のところがdx に対応すると思えばよい)。この式はx=x0を代入するとf(x0)=f(x0)となって成り立つし、xで微分してからx=x0を代入しても成り立つ。しかしこれだと、xで二階微分すると等式は成り立たない(右辺は0になってしまうが左辺はそうとは限らない)。二階微分が等しくなるためには、

f(x)f(x0)+(ddxf(x0))(xx0)+12(d2dx2f(x0))(xx0)2

とすればよい。右辺を二階微分すると、12(xx0)2の二階微分が1になる(ここで、d2dx2f(x0)は「微分した後x=x0を代入した結果」なのでもうxの関数ではないことに注意)ので、結果はd2dx2f(x0)となり、左辺の二階微分のx=x0での値と一致する(こうなるように12という係数を選んでおいた)。

関数の値(零階微分)と一階微分、二階微分が一致するのだから、より本当の関数に近づいている。この要領でどんどん右辺を左辺に近づけていく。この次の段階では、三階微分が等しくなるように、右辺に13×2d3dx3f(x0)(xx0)3を足す。以下同様に考えていくと、 f(x)=n=01n!(dndxnf(x0))(xx0)n とすれば、左辺と右辺でx=x0での値f(x0)と任意の階数の導関数dndxnf(x0)が一致する。

この展開を「テイラー展開(Taylor expansion)」と呼ぶ特にx0=0の場合には「マクローリン展開」という別の名前がついているが、わざわざ別の名前にするほどの意味はない。。右辺の級数和がほんとうに左辺と一致するかというと、一致しないこともある。一般的には、

f(x)=Nn=01n!(dndxnf(x0))(xx0)n+O((xx0)N+1)

のように、級数の形で表しきれていない剰余項を含んだ式が成り立つ剰余項には表現の方法はいろいろあるが、ここではとりあえず触れない。

以上の計算が実行できるような関数はx0において「解析的(analytic)」であると言う。解析的であるためには、「ある領域で何回でも微分可能」という条件が成り立たなくてはいけない。テイラー展開はこの条件のもとで考えている。このような「何回でも微分可能な関数」のことは「なめらかな関数」と呼ぶ。

FAQ:(xx0)nnは0以上の整数に限るのですか?
まず、(xx0)0.5のような項は入らない。これはxx0と同じことだが、これではx>x0でないと意味がない式になってしまう。じゃあ例えば|xx0|のように絶対値をつければ?---と思うかもしれないが、そういうことをしてしまうとx=x0で微分不可能になってしまう。そもそもそんな場合はテイラー展開を考えること自体無意味である。n=1などの負の指数も、やはりその点で微分不可能になって困る。また、nが整数でない場合、(xx0)nm階微分すると(xx0)nmに比例し、これはnm<0になるとこの点で定義されない(nが正の整数なら負になる前に0になるから問題ない)。つまりnが0以上の実数でないならどこかで微分不可能になってしまう。
「どこかで微分が不可能になるような関数」を展開しなくてはいけない状況が来たら、その時はnが0以上の整数でないような展開も出現するだろう。

等比級数で表されるテイラー展開へ→


第10講へ 講義録目次ページに戻る