2020/07/10 01:49 更新
台形公式とフーリエ級数展開
552 いいね ブックマーク
目次

前提知識

  • フーリエ級数展開
  • 台形公式

まえがき

とある授業のレポートで台形則の誤差を評価していた際にこんな面白い話もあったなあと思い出したことを書いています.あ,おそらく結局レポートには役に立ちません.仮に役に立つとしても,フーリエ解析の結果を引っ張ってくる必要が出てきてそれは非常に遠回りなことになるという意味で.

台形公式

台形公式とは数値積分の一種です.被積分関数を区分的に一次関数で近似して台形の面積の和として積分の近似値を求める方法です.今回はとくに区間幅が等間隔の場合を扱います.具体的に式で書くと区間$[0,1]$上で定義された$f$および区間の分割数$n$に対して

$$\gdef\dd{\,\mathrm{d}} \gdef\imag{\mathrm{i}} T_n f = \frac{1}{n}\left[\frac{1}{2} f(0)+\sum_{j=1}^{n-1} f\left(\frac{j}{n}\right)+\frac{1}{2} f(1)\right]$$

が区間幅$1/n$の台形公式になります. 当然近似公式なので

$$\int_0^1 f(x) \dd x \sim T_n f$$

となることを期待します.もちろんこれがどういう関数$f$に対してどういう意味で近いのか,あるいは分割数$n$を大きくしたときに近似誤差

$$\left|T_n f - \int_0^1 f(x) \dd x \right|$$

がどんな挙動が示すのか, そのようなことを知りたいわけです.

$f\in C^2([0,1])$,つまり$f$の一階および二階の導関数が存在し,それらが両方とも連続であるときの話はよく知られています.ここで詳しくは書きませんが各分割点におけるテイラー展開を考えれば

$$\left|T_n f - \int_0^1 f(x) \dd x \right| \le \frac{1}{12n^2} \|f''\|_\infty$$

が得られます.はじめに述べたとおり台形公式はある意味関数を一次近似して作っている公式なので一次の部分は厳密な値が求まっていて,誤差には二次の部分が本質的に関係するというイメージですね。

テイラー展開さえできれば誤差評価は簡単に得られますがそれは裏を返すと微分可能性という条件が強いということです.というわけでもう少し広い関数クラスに対してのお話をしましょう.

フーリエ級数展開

今回は$f$がフーリエ級数で展開されている場合を考えてみます.つまり基底関数$e_k(x)$を$e_k(x) = \exp(\imag 2\pi kx)$ として

$$f(x) = \sum_{k\in \mathbb Z} c_k e_k(x)$$

と書けているとしましょう.$c_k$がいわゆるフーリエ係数と呼ばれるあの子です.

$f$がこの形で書けているときに台形公式の誤差

$$\left|T_n f - \int_0^1 f(x) \dd x \right|$$

を計算しましょう〜というのがこの記事のメインパートです.

定性的考察

実際に計算をする前にどんな結果が出てきそうか考えてみましょう. そもそも台形公式はじめ数値積分というものは基本的に関数$f$が激しく振動するようなものだとあまりうまく近似できません. 「関数が激しく振動する」をフーリエ解析の枠組みで解釈するとどうなるでしょうか.激しく振動しているときそれは高周波成分を多く含んでいるということなのでつまるところ大きな$k$に対してフーリエ係数$c_k$が小さくないということですね.

こんなことを考えると台形公式の誤差とフーリエ係数$c_k$の間にはなにかしらの関係性があるということが予想できます.例えばフーリエ係数$c_k$が速く減衰すればそれは関数の滑らかさが高いということなので数値積分の誤差も小さいことが期待できますね.

台形公式の誤差の計算

定性的考察部分がややくどくなってしまいましたがすべてを教えてくれるのは計算結果だけです.$f$がフーリエ級数展開されているときの台形公式の誤差を計算しましょう.

まず基底関数$e_k(x)$に対して

$$\begin{aligned} T_n e_k &= \frac{1}{n}\left[\frac{1}{2} e_k(0)+\sum_{j=1}^{n-1} e_k\left(\frac{j}{n}\right)+\frac{1}{2} e_k(1)\right]\\ &= \frac{1}{n}\sum_{j=0}^{n-1} e_k\left(\frac{j}{n}\right)\quad(\because\ e_k(0)=e_k(1)=1)\\ &= \frac{1}{n}\sum_{j=0}^{n-1} \exp\left(\frac{\imag 2\pi kj}{n}\right)\\ &=\left\{\begin{array}{ll}1 & \ k \text {が} nの倍数 \\ 0 & \ \text {otherwise. }\end{array}\right. \end{aligned}$$

と計算できます.最後の式変形は等比数列の和の公式を使って計算してもいいですし複素数平面上で単位円にすっぽり収まってる正多角形の重心を見てると思ってもいいです.

この結果を用いて

$$\begin{aligned} \left|T_n f - \int_0^1 f(x) \dd x \right| &= \left|T_n \sum_{k\in \mathbb Z} c_k e_k(x) - \int_0^1 \sum_{k\in \mathbb Z} c_k e_k(x) \dd x \right| \\ &= \left|\sum_{k=mn} c_k - c_0 \right|\\ &= \left|\sum_{k=mn, k\neq 0} c_k \right|. \end{aligned}$$

はい,これでおしまいです.書き下すと,

$$\left|T_n f - \int_0^1 f(x) \dd x \right| = |c_n+c_{-n} + c_{2n}+c_{-2n}+\cdots|$$

となります.

この表現を見ると

  • $n$が大きくなればフーリエ級数の遠くを見るようになるので誤差は減っていく
  • フーリエ係数の減衰が速ければ誤差は小さくなる

なんてことがわかります.このあたりは定性的な考察とも矛盾しませんね.

さらなる考察

ここではもう少し関数の滑らかさと台形公式の誤差の関係を見てみましょう.
フーリエ係数$c_k$は

$$\begin{aligned} c_k &= \int_0^1 f(x)\overline{e_k(x)} \dd x\\ &= \int_0^1 f(x)\exp(-\imag 2\pi kx) \dd x \end{aligned}$$

であり,$f$が$l$階微分可能かつ端点で同じ関数値をもつのであれば部分積分を$l-1$回用いて

$$\begin{aligned} c_k &= \frac{1}{(\imag 2\pi k)^l}\int_0^1 f^{(l)}(x)\exp(-\imag 2\pi kx) \dd x\\ \end{aligned}$$

となるので,

$$|c_k| \le \frac{\|f^{(l)}\|_\infty}{(2\pi k)^l}$$

とフーリエ係数を評価できます.ゆえに台形公式の誤差は

$$\begin{aligned} \left|T_n f - \int_0^1 f(x) \dd x \right| &\le \sum_{k=mn, k\neq 0} \frac{\|f^{(l)}\|_\infty}{(2\pi k)^l}\\ &= \frac{\ 2\|f^{(l)}\|_\infty\ }{(2\pi n)^l} \sum_{m=1}^\infty \frac{1}{m^l}\\ &= \frac{\ 2\|f^{(l)}\|_\infty\ }{(2\pi n)^l} \zeta(l) \end{aligned}$$

と求まります.$f$が$l(\ge 2)$階微分可能のとき,$n$を大きくすると誤差は大体$n^{-l}$の速さで小さくなることがわかります.

結論

今回は$f$がフーリエ級数展開されていると仮定してそのときの台形公式の誤差を計算しました.結果,その誤差はフーリエ係数の和で抑えられることがわかりました.また例えば$f$が$C^l$級のときの誤差のオーダーを導出してみました.

特筆すべき点は,台形公式の誤差とフーリエ係数の関係性がわかったため,かなり広いクラスの関数たちに対する台形公式の誤差が計算できるという点です.実際フーリエ級数の収束性は昔から様々な関数クラスに対して研究されており,その結果が直接使えます.

例えば$f$が絶対連続 or 有界変動なら$|c_k| \sim n^{-1}$,$\alpha$-ヘルダー連続なら$|c_k| \sim n^{-\alpha}$などなど,この辺の結果を使えばそれぞれのクラスの関数に対する台形公式の誤差が簡単に見積もれます.