图

最小二乘法

预备知识 二元函数的极值

直线拟合

   在许多情况下, 我们需要将一组散点数据 $x_i, y_i \ \ (i = 1\dots N)$ 拟合成特定形式的函数曲线. 其中最常见的情况之一是拟合一条直线, 形式为 $y = ax + b$. 例如给出(图 1), 如何确定直线方程的两个最佳系数 $a$ 和 $b$ 呢?

   我们可以通过方差来计算拟合的误差, 方差越小则说明拟合得越好.

\begin{equation} S_2 = \sum_{i = 1}^N (a x_i + b - y_i)^2 \end{equation}
对于给定的 $N$ 个 $x_i, y_i$, 方差是 $a$ 和 $b$ 的二元函数. 我们只需找到这个二元函数的最小值点即可. 由于函数处处光滑, 最小值点必定满足 $\pdvStarTwo{S_2}{a} = \pdvStarTwo{S_2}{b} = 0$. 将式 1 代入, 得到一个线性方程组.
\begin{equation} \leftgroup{ &\qtyRound{\sum_i x_i^2} a + \qtyRound{\sum_i x_i} b = \sum_i x_i y_i \\ &\qtyRound{\sum_i x_i} a + N b = \sum_i y_i} \end{equation}
我们来计算系数行列式, 如果能证明行列式恒大于零, 则方程组必有唯一解.若令 $\bar x$ 为 $N$ 个 $x_i$ 的平均值, 考虑到 $x_i$ 互不相等, 容易证明
\begin{equation} N\sum_i x_i^2 - \qtyRound{\sum_i x_i}^2 = N\sum_i (x_i - \bar x)^2 > 0 \end{equation}
证毕. 由于方差恒大于零, 可知其必定存在最小值, 所以系数的唯一解必定是方差函数的极小值点. 接下来解线性方程组即可得到系数 $a, b$. 将解出的 $a,b$ 重新代入式 1 可以得出最小方差的值, 用于判断拟合结果的好坏.

多项式拟合

   以二次多项式 $c_2 x^2 + c_1 x + c_0$ 为例, 方差为

\begin{equation} S_2 = \sum_{i = 1}^N (c_2 x_i^2 + c_1 x_i + c_0 - y_i)^2 \end{equation}
分别令方差对 $c_2, c_1, c_0$ 的偏导为零, 得线性方程组
\begin{equation} \leftgroup{ &\qtyRound{\sum_i x_i^4} c_2 + \qtyRound{\sum_i x_i^3} c_1 + \qtyRound{\sum_i x_i^2} c_0 & &= \sum_i y_i x_i^2 \\ &\qtyRound{\sum_i x_i^3} c_2 + \qtyRound{\sum_i x_i^2} c_1 + \qtyRound{\sum_i x_i} c_0 & &= \sum_i y_i x_i \\ &\qtyRound{\sum_i x_i^2} c_2 + \qtyRound{\sum_i x_i} c_1 + \quad N c_0 & &= \sum_i y_i} \end{equation}
观察系数矩阵可以看出, 每条斜线上 $x_i$ 的指数相等, 且相邻斜线上 $x_i$ 的指数依次递减. 按照此规律容易写出 $N$ 次多项式拟合的方程组. 这里不证明系数行列式大于零, 但实际应用中方程组几乎都有唯一解.

简谐波拟合

   若要拟合 $A \cosRound{x + \varphi_0} + C$ 形式的函数, 可以先利用两角和公式把函数化为 $c_1 \cos x + c_2 \sin x + c_3$ 的等效形式(因为前者并不是待定系数的线性组合, 得到的方程组也不是线性方程组), 方差公式为

\begin{equation} S_2 = \sum_i (c_1 \cos x_i + c_2 \sin x_i + c_3 - y_i)^2 \end{equation}
分别令方差对 $c_1, c_2, c_3$ 的偏导为零, 得线性方程组
\begin{equation} \leftgroup{ &\qtyRound{\sum_i \cos^2 x_i} c_1 + \qtyRound{\sum_i \sin x_i \cos x_i} c_2 + \qtyRound{\sum_i \cos x_i} c_3 & &= \sum_i y_i \cos x_i\\ &\qtyRound{\sum_i \sin x_i \cos x_i} c_1 + \qtyRound{\sum_i \sin^2 x_i} c_2 + \qtyRound{\sum_i \sin x_i} c_3 & &= \sum_i y_i \sin x_i\\ &\qtyRound{\sum_i \cos x_i} c_1 \quad + \quad \qtyRound{\sum_i \sin x_i} c_2 \quad + \quad N c_3 & &= \sum_i y_i\\ } \end{equation}
实际应用中, 该方程组同样几乎都有唯一解.

致读者: 小时物理百科一直以来坚持所有内容免费且不做广告,这导致我们处于日渐严重的亏损状态。长此以往很可能会最终导致我们不得不选择商业化,例如大量广告,内容付费,会员制,甚至被收购。因此,我们鼓起勇气在此请求广大读者热心捐款,使网站得以健康发展。如果看到这条信息的每位读者能慷慨捐助 10 元,我们几天内就能脱离亏损状态,并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。感谢您的支持。
—— 小时(项目创始人)

编辑词条 返回目录 返回主页 捐助项目 © 小时物理百科 保留一切权利