算法#03--详解最小二乘法原理和代码

最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form(如下文),而非线性最小二乘没有closed-form,通常用迭代法求解(如高斯牛顿迭代法,本文不作介绍)。
摘要由CSDN通过智能技术生成

最小二乘法原理

最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form(如下文),而非线性最小二乘没有closed-form,通常用迭代法求解(如高斯牛顿迭代法,本文不作介绍)。

【首先得到线性方程组】

1.概念

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。

利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

最小二乘法还可用于曲线拟合。

2.原理

函数原型:

这里写图片描述

已知:

(x0,y0),(x1,y1)…(xi,yi)…(xn,yn)个点,n>=k。

偏差平方和:

这里写图片描述

偏差平方和最小值可以通过使偏导数等于零得到:

这里写图片描述

简化左边等式有:

这里写图片描述

写成矩阵形式:公式①

这里写图片描述

将这个范德蒙得矩阵化简后可得到:公式②

这里写图片描述

也就是说X*A=Y,那么A = (X’*X)-1*X’*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。

高斯消元法

【然后解线性方程组,即公式①】

1.概念

数学上,高斯消元法(或译:高斯消去法)(英语:Gaussian Elimination),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。

2.原理

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

3.伪代码

这个算法和上面谈到的有点不同,它由绝对值最大的部分开始做起,这样可以改善算法的稳定性。本算法由左至右地计算,每作出以下三个步骤,才跳到下一列和下一行:

  • 定出i列的绝对值最大的一个非0的数,将第i行的值与该行交换,使得该行拥有该列的最大值;
  • 将i列的数字除以该数,使得i列i行的数成为1;
  • 第(i+1)行以下(包括第(j+1)行)所有元素都转化为0。

所有步骤完成后,这个矩阵会变成一个行梯矩阵,再用代入法就可以求解该方程组。

 i = 1
 j = 1
 while (i ≤ m and j ≤ n) do
   Find pivot in column j, starting in row i    // 从第i行开始,找出第j列中的最大值(i、j值应保持不变)  
   maxi = i
   for k = i+1 to<
  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值