给定一个变量 的函数 ,在 个值 , ..., 处列表,假设该函数具有已知的解析形式,取决于 个参数 ,并考虑 个方程的超定集
(1)
| |||
(2)
|
我们希望求解这些方程,以获得最佳满足此方程组的值 , ..., 。 为 选择一个初始猜测,然后定义
(3)
|
现在获得线性化估计,用于减少 至 0 所需的变化量
(4)
|
对于 , ..., ,其中 。 这可以写成组件形式:
(5)
|
其中 是 矩阵
(6)
|
更简洁的矩阵形式:
(7)
|
其中 是一个 向量, 是一个 向量。
将 的转置应用于两边,得到
(8)
|
定义
(9)
| |||
(10)
|
根据已知量 和 ,然后得到矩阵方程
(11)
|
可以使用标准矩阵技术(如高斯消元法)求解 。 然后将此偏移量应用于 并计算新的 。 通过迭代应用此过程,直到 的元素变得小于某个规定的极限,即可获得解。 请注意,对于某些函数,该过程可能无法很好地收敛,并且通过选择接近最佳拟合值的初始值,通常可以大大改善收敛性。 平方残差和由 给出(在最后一次迭代之后)。
上面显示了一个非线性最小二乘法拟合噪声高斯函数的例子
(12)
|
其中,细实线是初始猜测,虚线是中间迭代,粗实线是解收敛到的拟合。 实际参数为 ,初始猜测为 (0.8, 15, 4),收敛值为 (1.03105, 20.1369, 4.86022),。 用于构造矩阵 的偏导数是
(13)
| |||
(14)
| |||
(15)
|
该技术显然可以推广到多个高斯函数,以包括斜率等,尽管随着自由参数数量的增加,收敛特性通常会变差。
类似的技术可用于求解超定方程组。 例如,当求解对应于噪声旋转矩阵的最佳拟合欧拉角时,可能会出现此问题,在这种情况下,有三个未知角度,但有九个相关的矩阵元素。 在这种情况下,将 个不同的函数写为 ,对于 , ..., ,称它们的实际值为 ,并定义
(16)
|
和
(17)
|
其中 是在第 次迭代后获得的数值。 再次,将方程设置为
(18)
|
并完全按照之前的步骤进行。