最小二乗法というのは,データをある関数で最良近似する方法である.例えば,
 |
(1) |
の

の実験データがあるとする.これを直線で近似

したい.どうすればよ
いか?--という問題である.誤差の2乗が最小になる直線が最良近似とすることができる.
これを最小二乗法(least squares method)と言う.式で表すと,誤差の二乗の和

は,
となる.

は,

番目のデータで,

はデータの個数である.この誤差が
最小になる

と

を捜す.式(
2)は

にも

にも2次式でその係
数は正の値なので最小値がある.誤差

の最小値は,それぞれ偏微分した値がゼロとな
るときに得ることができる.
|
 |
|
 |
|
(3) |
これは,

と

の連立方程式である.すなわち,
である.これを解くと
|
 |
|
 |
|
(5) |
となる.
最初に示したのデータについて計算してみると,
となる.ゆ
えに,最小二乗法による1次関数は
 |
(6) |
となる.データをこの間数をプロットすると,図
1のようになる.
グラフ作成ソフトウェアーは,最小二乗法によるデータのフィッティングをサポートして
いるものが多い.EXCELでも可能なはずである.実験データの整理に使うと良い.
ここでは,偏微分により最小二乗法の式を導いたが,線形代数の部分空間への射影を考え
る方が簡単である.これについては,参考文献 [2]に詳しく書い
てある.これは良い教科書なので,一読を勧める.
ここでは,フーリエ級数で関数をフィッティングした場合の誤差を考える.
区間
で定義された関数
は,
のようにフーリエ級数で表すことができる.例えば,
![$ [\pi,\,\pi]$](img32.png)
で定義された関数

は,
と表すことができる.ここで,区間
![$ [-\pi,\,\pi]$](img35.png)
での元の関数

と,式
(
8)の右辺の誤差の2乗

を考える.一次関数でデータをフィッ
ティングしたときは,誤差の2乗の和であったが,ここでは関数をフィッティングするの
で誤差の二乗の積分になる.
![$\displaystyle E=\frac{1}{2\pi}\int_{-\pi}^\pi\left\{x-2\left[\sin x-\frac{\sin ...
... 3x}{3}- \dots+(-1)^{n+1}\frac{\sin nx}{n}+\cdots\right]\right\}^2\,\mathrm{d}x$](img38.png) |
(9) |
積分の前に

は気にする必要は無い.教科書に合わせているだけで,トータルの誤
差ではなく平均誤差を表している.証明はしていないが,フーリエ級数の展開の係数を無
限大まで計算すると,

となる.誤差の2乗の積分がゼロとなる
2.
フーリエ級数とは全く話を別にして,区間
![$ [-\pi,\,\pi]$](img41.png)
で定義された関数

を三角
関数で最小二乗法で近似する.すなわち,
で近似する.なんか,フーリエ級数そっくりではないか?--とツッコミをいれたくなるが,
それとはまったく別なもの,フーリエ級数など知らないとして,話を進める.ある関数

を

で近似することを考える.ここで,式(
10)の係数

と

を上手に選んで,

との誤差が最も小さくなるようにする.ちょうど,最初に示したデー
タとの誤差を最小にする1次関数の係数を求めたようにする.二乗平均誤差
3を,
と定義する.この二乗平均誤差は,係数

や

の関数となっている.この係数が変
わると誤差の量も変化する.この式は,1次関数でデータをフィットするときの誤差を表
す式(
2)に対応する.
誤差を表す式(11)を最小にするには,
と
をどのように選ぶか?--
ということが問題となる.これを最小にするということは,関数
を三角関数で近似
する最適な係数を決めることに他ならない.式(11)には最小値があり,関
数を近似する最適な
と
がある.なぜならば,全ての
と
は係数が正の
2次式であるため,最小値があるからである.この最小値はそれぞれの偏微分がゼロに
なるときに得られる.すなわち,
が条件となる.この具体的な計算は,式(11)に式(10)を代入
して偏微分がゼロとなる
や
を求める.
や
を求める具体的な計算の前に,ここで使う三角関数の重要な式を示しておく.
これらの式は,第4回の講義で話した内容である.
二乗平均後差が最小になる
は,次のように計算して求める.
である.ゆえに,
 |
(17) |
となる.これは,フーリエ級数の
の計算と同じ.
二乗平均後差が最小になる
番めの係数
を計算する
したがって,
 |
(19) |
である.これもフーリエ係数の計算と同じ
同様にし,二乗平均後差が最小になる
番めの係数
を計算する
したがって,
 |
(21) |
である.これもフーリエ係数の計算と同じ.
フーリエ級数は,関数
を最小二乗法で近似している.これは,展開する三角関数が
有限個の場合,その展開の項数に関わらずいつも最良近似となっている.展開の項数に関
わらず,同じ係数でいつでも最良近似となるのは,展開する三角関数の列が直交関数系と
なっているからである.テイラー展開ではこのようにならない.
ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年12月1日