《误差理论》——从线性到非线性:最小二乘法在参数估计中的统一矩阵视角

张开发
2026/6/6 22:34:16 15 分钟阅读
《误差理论》——从线性到非线性:最小二乘法在参数估计中的统一矩阵视角
1. 最小二乘法的核心思想从误差最小化到矩阵统一想象你手里有一堆散乱的数据点想要找一条最合适的直线或曲线来描述它们的关系。这就是最小二乘法要解决的核心问题——让预测值与实际测量值之间的误差平方和最小。我第一次接触这个概念是在大学物理实验课上当时用游标卡尺测量钢球直径老师要求我们用最小二乘法处理数据那会儿只觉得是一堆复杂的公式直到后来做项目时才真正理解它的精妙。最小二乘法的数学本质可以概括为对于给定的测量数据 $l_1, l_2,...,l_n$ 和待估计参数 $x_1, x_2,...,x_t$通过构建误差方程 $v_i l_i - f_i(x_1,...,x_t)$寻找使加权误差平方和 $\sum P_i v_i^2$ 最小的参数解。这个思想看似简单却蕴含着深刻的统计意义——它实际上是在最大似然估计的框架下当测量误差服从正态分布时的最优解。矩阵表示法的优势在于将复杂的代数运算转化为简洁的矩阵操作。比如误差方程 $V L - A\hat{x}$其中$L$ 是测量值向量$A$ 是设计矩阵或称雅可比矩阵$\hat{x}$ 是待估参数向量这种表示不仅形式上简洁更重要的是为后续的数值计算和编程实现提供了统一框架。我在处理卫星轨道参数估计时就深有体会——当观测方程达到上百个时矩阵运算的优越性就凸显出来了。2. 线性问题的矩阵解法从代数到矩阵的升华2.1 正规方程的推导过程让我们从一个简单例子开始假设要拟合直线 $y kx b$有n组观测数据 $(x_i, y_i)$。传统代数法需要解这两个方程 $$ \sum y_i k\sum x_i nb \ \sum x_i y_i k\sum x_i^2 b\sum x_i $$而用矩阵表示设计矩阵 $A$ 的第一列全为1对应截距b第二列为 $x_i$ 值。正规方程 $A^TA\hat{x} A^TL$ 直接给出了与代数法等价但更通用的解 $$ \hat{x} (A^TA)^{-1}A^TL $$关键点在于权重矩阵 $P$ 的引入。当测量精度不等时比如某些仪器更精确权重 $P_i 1/\sigma_i^2$ 能确保高精度数据对结果影响更大。这相当于在误差函数中给不同数据点分配话语权。2.2 实际案例电阻测量实验去年指导本科生做电学实验时遇到一个典型场景用三种不同精度的万用表测量同一电阻数据如下测量值(Ω)仪器误差(Ω)100.20.5100.50.2100.11.0构建矩阵 $$ A \begin{bmatrix}1\1\1\end{bmatrix}, \quad L \begin{bmatrix}100.2\100.5\100.1\end{bmatrix}, \quad P \begin{bmatrix}400\0250\001\end{bmatrix} $$解得 $$ \hat{R} (A^TPA)^{-1}A^TPL 100.45 \Omega $$这个结果比简单算术平均100.27Ω更合理因为它充分考虑了第二台仪器更高精度的影响。3. 非线性问题的线性化处理3.1 泰勒展开的妙用非线性问题如 $y e^{kx}$ 看起来棘手但通过一阶泰勒展开就能转化为线性问题。具体步骤给定初始猜测值 $x_0$在 $x_0$ 处展开$y \approx e^{kx_0} ke^{kx_0}(x-x_0)$令 $l y - e^{kx_0}$, $\delta x - x_0$得到线性化方程$l ke^{kx_0}\delta$我曾用这个方法处理GPS定位中的非线性方程通过3-5次迭代就能获得厘米级精度的位置解。3.2 实际案例透镜焦距测量光学实验中常用公式 $$ \frac{1}{u} \frac{1}{v} \frac{1}{f} $$ 其中 $u$ 为物距$v$ 为像距$f$ 为待求焦距。这是个典型的非线性问题。假设测得三组数据(u,v) {(30,15), (40,13.3), (50,12.5)}处理过程取初始值 $f_010$构建雅可比矩阵 $A$其中每个元素为 $\partial f_i/\partial f$ 在 $f_0$ 处的值通过迭代计算最终得到 $f9.998 \pm 0.005$ cm关键技巧好的初始值能大大减少迭代次数。我通常会先用绘图法估算大致范围。4. 精度估计与结果评价4.1 单位权方差的计算参数估计的精度用单位权方差 $\sigma_0$ 衡量 $$ \sigma_0 \sqrt{\frac{V^TPV}{n-t}} $$ 其中 $n$ 是观测数$t$ 是参数个数。这个公式分母中的 $(n-t)$ 体现了自由度的概念——就像我用20个点拟合直线时有效约束其实只有18个。4.2 参数协方差矩阵参数的不确定性由协方差矩阵 $D_x \sigma_0^2 (A^TPA)^{-1}$ 描述。对角元素开平方就是各参数的标准差非对角元素则反映参数间的相关性。在桥梁健康监测项目中我们发现某些模态频率的估计值高度相关相关系数达0.9这提示需要重新设计传感器布局以改善观测方程的独立性。5. 工程实践中的注意事项5.1 矩阵病态问题处理当 $A^TA$ 接近奇异时最小二乘解会极不稳定。我遇到过最夸张的情况是条件数达到 $10^{15}$导致结果完全不可信。解决方法包括增加正则化项岭回归采用奇异值分解(SVD)重新参数化模型5.2 粗差检测与稳健估计真实工程数据难免包含异常值。我习惯先用标准化残差检测 $$ v_i \frac{|v_i|}{\sigma_0\sqrt{1-h_{ii}}} $$ 其中 $h_{ii}$ 是帽子矩阵 $HA(A^TA)^{-1}A^T$ 的对角元。当 $v_i3$ 时该观测值需特别检查。在无人机航迹拟合中我们结合了RANSAC算法有效剔除了GPS信号反射导致的异常点。6. 现代扩展与应用前沿6.1 递归最小二乘对于实时处理场景如传感器数据流递归最小二乘(RLS)通过递推公式避免重复计算逆矩阵。我在开发惯性导航算法时RLS将计算耗时从200ms降到了5ms。更新公式为 $$ K_k P_{k-1}A_k^T(A_kP_{k-1}A_k^T R_k)^{-1} \ \hat{x}k \hat{x}{k-1} K_k(y_k - A_k\hat{x}{k-1}) \ P_k (I - K_kA_k)P{k-1} $$6.2 总体最小二乘当设计矩阵 $A$ 也存在误差时传统方法会产生偏差。总体最小二乘(TLS)通过奇异值分解同时考虑 $A$ 和 $L$ 的误差。这在全站仪测量网平差中特别有用。计算步骤构造增广矩阵 $C [A|L]$对 $C$ 进行SVD分解取最小奇异值对应的右奇异向量作为解7. 编程实现技巧7.1 MATLAB/Python实现在Python中正规方程求解只需三行代码import numpy as np x_hat np.linalg.solve(A.T P A, A.T P L) cov_x np.linalg.inv(A.T P A) * sigma0**2性能提示对于大型稀疏矩阵如有限元分析使用scipy.sparse模块能节省90%以上内存。7.2 数值稳定性实践避免直接计算逆矩阵改用QR分解[Q,R] qr(A); x_hat R\(Q*L);这个技巧在处理病态问题时特别有效我在处理天文望远镜的波前重构问题时将参数估计精度提高了两个数量级。

更多文章